##基于express和mock.js搭建自己的前后端分离Mock服务器
-
运行
$ npx express-generator api-server
创建一个express项目 -
$ cd api-server
进入项目目录 -
$ npm install
安装项目所需要的依赖 -
$ npm install nodemon -D
安装nodemon -
$ npm install mockjs -S
安装mockjs包 -
打开项目目录下的
package.json
, 更改scripts
:- "start": "node ./bin/www" + "start": "nodemon ./bin/www"
-
根据需要配置路由
-
比如,有一个叫users的路由挂载在
/api/v1/users
下,就可以这么来写这个mock数据// 引入express const express = require('express'); // 只使用router const router = express.Router(); // 引入Mock对象 const Mock = require('mockjs') // 定义生成数据列表的方法 const generateData = () => { // 使用Mock.mock方法来生成mock数据 return Mock.mock({ "code": 200, "data|12": [ { "id": "@id", "title": "@ctitle(15, 25)", "author": "@cname", "volume": "@int(100, 300)", "createAt": "@int(10000000000000, 1554363040517)" } ] }) } // 定义另外一个方法,用于生成单个数据 const generateDataById = (id) => { return Mock.mock({ "code": 200, data: { id, "title": "@ctitle(15, 25)", "author": "@cname", "volume": "@int(100, 300)", "createAt": "@int(10000000000000, 1554363040517)" } }) } /* 获取用户列表 */ router.get('/', function(req, res, next) { res.json(generateData()) }); /* 获取单个用户,根据用户的id, 这里有一个express通配符路由(动态路由) */ router.get('/:id', function(req, res, next) { const { id } = req.params res.json(generateDataById(id)) }); module.exports = router;
这样我们就可以使用
http://localhost:port/users
获取用户列表, 使用http://localhost:port/users/任意的id参数
获取用户信息