服務器端
1. 技術棧:
語言: NodeJs
框架: Express4.x版本
鏈接數據庫的NodeJs庫: Mongoose
2. 中間件:
a. express-session,可以在NodeJs中使用session,實現登錄驗證
,后端設置session時長,可實現用戶登錄超時功能.
b. multer,用于文件上傳
,前端使用multipart/form-data傳輸文件流,后端則能接受到文件,并保存在本地.
3. 項目架構:
|-- wood-birds
|-- .babelrc // babel配置文件
|-- .gitignore // git上傳忽略文件的配置文件
|-- app.js // 入口文件,主要配置整個項目需要用到的js庫,包含中間件,路由接口,服務等功能。
|-- LICENSE
|-- package.json // 項目配置文件
|-- bin
| |-- www // 項目Http服務配置文件,使用NodeJs創建Http服務,啟動NodeJs項目
|-- conf // 項目需要用到的配置文件
| |-- db.js // 鏈接Mongodb數據庫的配置文件
| |-- global.js // 全局變量
|-- model // mongodb的數據表model,操作數據表的抽象方法
| |-- article.js // 文章表(添加,刪除,查詢)
| |-- city.js // 城市表(添加,刪除,查詢)
| |-- evaluate.js // 評論表(添加)
| |-- home.js // 首頁表(上傳首頁Banner)
| |-- house.js // 房源表(添加,刪除,查詢,修改)
| |-- order.js // 訂單表(添加,查詢,修改)
| |-- user.js // 用戶表(添加,查詢,修改)
|-- public // 服務器靜態文件開放路徑(獲取靜態文件時,服務器地址 + images + '路徑/xxx.jpg',即可獲取文件,例如: https://aileer.net/images/bg.jpg)
| |-- images
| |-- account // 存放用戶圖片的文件路徑
| |-- article // 存放文章圖片的文件路徑
| |-- home // 存在熱門城市圖片和Banner的文件路徑
| | |-- banner // 存放首頁Banner的路徑
| |-- resource // 存放房源圖片的文件路徑
|-- routes
| |-- account.js // 用戶相關的接口路由文件
| |-- discover.js // 文章相關的接口路由文件
| |-- home.js // 首頁,獲取banner,熱門城市的接口路由文件
| |-- index.js // 引入其他接口路由文件,統一配置,然后將所有的接口路由拋給app.js,使用app.use('/', 路由).
| |-- order.js // 訂單相關的接口路由文件
| |-- resource.js // 資源(房源)相關的接口路由文件
|-- schemas // mongodb數據表,定義數據表字段及字段類型
| |-- Article.js // 文章表
| |-- City.js // 城市表
| |-- Evaluate.js // 評論表
| |-- Home.js // 首頁表
| |-- HotCity.js // 熱門城市表
| |-- House.js // 房源表
| |-- Order.js // 訂單表
| |-- User.js // 用戶表
|-- server
| |-- auth.js // 權限驗證類(驗證用戶的權限,及登錄超時)
| |-- model.server.js // 數據表操作方法類(使用js方法操作數據庫)
| |-- valid.js // 驗證類(驗證接口必傳字段方法)
4. 項目啟動及發布:
安裝相關軟件: yarn, NodeJs,Mongodb
a. 啟動項目
| $ cd wood-birds // 先進入項目目錄
| $ yarn install // 安裝依賴
| $ npm run dev // 啟動項目
b. 發布項目
- 部署環境:Linux(ubuntu 18.04)
- 部署路徑: /opt/wood-birds/
- 安裝進程管理器PM2:
yarn global add pm2
- 使用pm2啟動項目:
| $ cd /opt/wood-birds/
| $ pm2 ./bin/www --name wood-birds
- 查看進程啟動:
pm2 list