前言
在开发前后端分离的 web 应用时,后端服务的搭建是必不可少的,而 Express.js 是一款优秀的 Node.js Web 框架,可以快速构建高性能的后端服务。本文介绍的 npm 包 express-rest-es2017-boilerplate 是一个基于 Express.js 的 RESTful API 服务的脚手架,它使用了最新的 ES2017 语法来加强代码的可维护性和可读性,同时也支持了多种开发环境的配置,可以快速搭建出一个可测试、可扩展、可部署的 RESTful API 服务。
安装
使用 npm 全局安装 express-rest-es2017-boilerplate:
npm install -g express-rest-es2017-boilerplate
安装完毕后,使用命令行进入想要创建项目的文件夹:
cd /path/to/project/folder
然后使用下面的命令来初始化项目:
express-rest-es2017-boilerplate init
以上命令会自动下载模板代码并安装依赖。
结构
使用 express-rest-es2017-boilerplate init
命令后,项目的目录结构如下:
-- -------------------- ---- ------- -------- --- ------- - --- -------------- - --- ------------- - --- ------- --- ------------ - --- ---------- --- ----- - --- ------- --- ----------- - --- ---------- - --- -------- --- ------- - --- ---------- - --- -------- - --- ---------- --- ------- - --- ---------- - --- -------- - --- --------- - --- ---------- --- --------- - --- ---------- --- ----- - --- ---------- --- ---- --- -------- --- ------- --- ------------ --- ---------
其中,重要的目录和文件解释如下:
config/
目录存储的是服务的配置文件,分别对应不同的环境。controllers/
目录存储的是用于处理路由请求和业务逻辑的控制器。middleware/
目录存储的是自定义的中间件,作用于全局或局部。models/
目录存储的是用于操作数据库的 Mongoose 模型文件。routes/
目录存储的是 API 的路由文件,按照版本划分,可添加多组路由,方便管理。services/
目录存储的是与业务逻辑无关的公共服务,例如对文件上传的封装。test/
目录存储的是测试用例,使用 Mocha 和 Chai 进行测试。.env
文件是环境变量配置文件,存储一些私密信息,如数据库的密码。index.js
是入口文件,负责启动应用程序。package.json
存储的是 npm 包的信息和依赖信息。
启动服务
进入项目文件夹后,使用下面的命令启动开发模式的服务:
npm run dev
或者使用下面的命令启动生产模式的服务:
npm start
路由解析
使用 express-rest-es2017-boilerplate
搭建一个 RESTful API 服务的路由解析是基于 express
框架的,例如下面的代码是一个包含基本增删改查操作的路由:
-- -------------------- ---- ------- ----- ------ - ---------------------------- ----- ----------------- - ---------------------------------- --------------- -------------------------- ------------------ --------------------------- ---------------- -------------------------- ------------------ -------------------------- --------------------- -------------------------- -------------- - -------
控制器实现
控制器是用于处理路由请求和业务逻辑的文件,例如下面的代码是一个获取所有数据的控制器:
-- -------------------- ---- ------- ----- ------- - ----------------------------- -------------- - ----- ---- ----- -- - ---------------- ----- --------- -- - -- ----- - ------ ---------- - ------------------- --- --
数据库操作
使用 mongoose
操作 MongoDB 的语法与官网示例相似,例如下面的代码是使用 mongoose
创建一个 Mongoose 模型:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------------- - --- ----------------- ----- - ----- ------- --------- ---- -- ---- ------- --- ----- ------- - ------------------------- --------------- -------------- - --------
中间件实现
使用 express-rest-es2017-boilerplate
可以方便地编写自定义中间件,例如下面的代码是一个记录请求日志的中间件:
module.exports = (req, res, next) => { console.log(`[${new Date().toLocaleString()}] ${req.method} ${req.originalUrl}`); next(); };
同时,也可以通过修改 config/swagger-def.js
文件,自动生成 API 文档。
测试
使用 mocha
和 chai
进行测试,可以方便的测试 API 是否正常工作,例如下面的代码是一个获取所有数据的测试用例:
-- -------------------- ---- ------- ----- - ------ - - ---------------- ----- ------- - ------------------------------------------ ------------- ------------- -- -- - ---------- ------ -- ------- ----- -- -- - ----- --- - ----- --------------------------- ------------------------------------- ----------------------------------- --- ---
总结
使用 express-rest-es2017-boilerplate
可以快速搭建出一个使用最新语法编写的 RESTful API 服务,提升代码的可维护性和可读性,同时集成了自定义中间件、Mongoose 模型和 API 文档等功能,方便开发者进行项目开发和维护。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057b3f81e8991b448eb824