为何要搭建假数据
我们在开发项目中通常会涉及与后端接口联接的问题,这时候如果能够写一个简单的服务器,你请求真实的接口url,只需要给手机设置一个代理,就返回你设置的假数据。这样你就可以完全抛开其他依赖的顾虑,可以像正常情况一样开发、校验结果,而不是依赖写死在代码里的各种假逻辑(这样做也会为后面的开发带来一些隐患)。
搭建Express环境
安装生成器
$ npm install express-generator -g
生成项目
$ express mock-server
进入项目并安装依赖
$ cd mock-server && npm install
启动项目
$ npm start
端口默认3000
localhost:3000
在已有项目上创建假数据
根据express创建相关文件;
$ express + 文件名
安装express的相关插件;
搭建假数据会需要一个工具包:mock.js;
地址: http://mockjs.com
$ 安装模块:npm i mockjs
在app.js中引入mockjs;
// 引入相关模块
const express = require('express');
const router = express.Router();
const Mock = require('mockjs')
// 使用中间件
app.use('/api/list', listRouter);
app.use('/api/detail', detailRouter);
// 暴露
module.exports = app;
- 配置router;
// 引入相关模块
var express = require('express');
var router = express.Router();
const Mock = require('mockjs')
// 请求列表页所有商品
router.get('/', function(req, resp, next) {
let goodList = Mock.mock({
"res_code|1": [200, 200, 200, 200, 200, 200, 200, 201],
"res_body": {
"list|10": [
{
"id|+1": 1,
"title": "@ctitle( 10, 20 )",
"img": "@image('200x100', @color, #FFF, png, @word)",
"price": "@float(100,1000,2,2)"
}
]
}
})
resp.json(goodList);
});
module.exports = router;
- 使用
// 引入相关模块
var express = require('express');
var router = express.Router();
const Mock = require('mockjs')
/* 取id. */
router.get('/', function(req, resp, next) {
let id = req.query.id;
console.log(req.query)
let detail = Mock.mock({
"id": id,
"title": "@ctitle( 10, 20 )",
"img": "@image('200x100', @color, #FFF, png, @word)",
"price": "@float(100,1000,2,2)"
})
resp.json(detail)
});
module.exports = router;
搭建好数据后把地址(localhost:3000)添加到项目里使用(跨域,需要设置cros或者代理proxy)。