服务器端
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