Node 系列之 Express
注意
本文状态:未完待续...
基于 node-express-boilerplate 进行开发;
技术栈包含:Express/Mongoose 等。
Express 简述
高度包容、快速而极简的 Node.js Web 框架
第一部分 构建 Web 服务器
一、node-express-boilerplate
1)RESTful API Node Server Boilerplate
一个样板/启动项目,用于使用 Node.js、Express 和 Mongoose 快速构建 RESTful API。
2)快速启动
创建项目 -- 安装依赖 -- 新建.env 文件 -- 安装 MongoDB -- 运行。
a. 创建项目
js
npx create-nodejs-express-app <project-name>
OR
js
npm init nodejs-express-app <project-name>
b. 安装依赖
js
yarn install
c. 新建.env 文件,直接 copy .env.example 即可
d. 安装 MongoDB
文章后面会详细介绍
e. 运行
js
// Running locally
yarn dev
// 试生产
yarn start
3)Features
简述 node-express-boilerplate 的特色
- NoSQL 数据库:使用 Mongoose 的 MongoDB 对象数据建模
- 身份验证和授权:使用 passport
- 验证:使用 Joi 请求数据验证
- 日志:使用 winston 和 morgan
- 测试:使用 Jest 的单元和集成测试
- 错误处理:集中式错误处理机制
- API 文档:带有 swagger-jsdoc 和 swagger-ui-express
- 过程管理:使用 PM2 的先进生产过程管理
- 依赖关系管理:使用纱线
- 环境变量:使用 dotenv 和 cross-env
- 安全性:使用头盔设置安全 HTTP 标头
- Santizing:针对 xss 和查询注入清理请求数据
- CORS:Cross-OriginResource-Sharing 使用 CORS 启用
- 压缩:gzip 压缩和压缩
- CI:与 Travis CI 的持续集成
- Docker support
- 代码覆盖范围:使用工作服
- 代码质量:带密码
- Git 钩子:带有 husky 和 lint-staged
- 衣料:带 ESLint 且更漂亮
- 编辑器配置:使用 EditorConfig 的一致编辑器配置
4)使用文档简述
TODO
二、安装 MongoDB
TODO
三、API 接口撰写
TODO
1)Apifox 工具
TODO
2)生成 Swagger 类似接口文档
Apifox 将接口导出为 md 文档,利用其他工具将 md 文档转为 doc 文档或者 PDF 文档等。
如使用 Mdnice 即可将 Markdown 导出为 PDF 格式。
注意:Swagger 规范里是没有顺序的概念的,也没有分组的概念。
3)TODO
TODO
第二部分 框架优化
一、引入 MySQL
在 express 项目中操作数据库的步骤
- ① 安装操作 MySQL 数据库的第三方模块(mysql)
- ② 通过 mysql 模块连接到 MySQL 数据库
- ③ 通过 mysql 模块执行 SQL 语句
1)项目安装 mysql 模块
yarn add mysql
2)本机安装 mysql
以 Windows 系统为例
js
// ===== 常见命令 =====
// 1. 启动mysql
net start mysql
// 2. 启动登录
mysql -u root -p // 回车,输入默认的那个极其安全的密码。
// 3. 停止服务
net stop mysql
// 4. 修改密码
ALTER USER root@localhost IDENTIFIED BY 123456
- MySQL 小试牛刀
- 官网:https://www.mysql.com/cn/
- 下载社区版:https://dev.mysql.com/downloads/mysql/
- xx
3)配置 mysql 模块
在使用 mysql 模块操作 MySQL 数据库之前,必须先对 mysql 模块进行必要的配置,主要的配置步骤如下:
js
// == TODO
4)测试 mysql 模块能否正常工作
TODO -- 增删改查
二、TODO
TODO
第三部分 高级应用
一、TODO
TODO
- node-express-boilerplate 具体说明
- node-express-boilerplate github
- express-es6-rest-api github
- express-typescript-boilerplate github
- express 中文官网
- express 实战