mockjs模拟数据发送
场景:有时候想模拟http压测,或者是开发前端的时候,想模拟一个后台调用,需要快速搭建一个服务,可以使用这种方式调用mock数据
前提:
需要本地搭建好node环境
操作步骤:
1、创建文件夹mockServer,进入文件根目录,初始化项目,一路回车即可
2、安装依赖
// express web框架 npm i express // mock模拟数据 npm i mockjs // 全局安装自动重启工具,监听文件变化 cnpm i nodemon -g
3、在根目录下创建mockServer.js入口文件
let express = require('express'); //引入express
let app = express(); //实例化express
const router = require('./api/api.js') // 引入路由
// 跨域访问
app.use('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});
// 使用路由 /index 是路由指向名称
app.use(`/api`,router)
app.listen('8090', () => {
console.log('监听端口 8090...')
})
4、在根目录创建api文件夹,并创建api.js和Dataone.js文件
api.js
const express = require(`express`) const fs = require('fs') let Mock = require('mockjs'); //引入mock const router = express.Router() /*readdir读取目录下所有文件*/ fs.readdir('./api', function(err, files) { if(err) { console.log(err); } else { /*遍历读取文件夹中的内容*/ files.forEach((item ,index) => { /*遍历读取文件夹中的内容*/ /*一个json文件就是一个请求*/ router.all(`/${item.replace(/.json/, '')}`, function(req, res){ // 以utf8格式读取json文件内容 fs.readFile(`./api/${item}`, 'utf-8', function(err, data) { if (err) console.log(err) else { // 以json对象返回数据 res.json(Mock.mock(JSON.parse(data))); } }) }) }) } }) module.exports = router
Dataone.js
{ "ret": 0, "msg": "", "data": { "pay_accessable": 1, "coupon_item": [], "price_slogan": "", "total_price_for_coupon": 200, "price_item": [ { "value_fen": 200, "price_value_fen": 200, "tax_value": 0, "type": 1 } ] } }
5、回到mockServer.js同级目录,运行并验证
node mockServer.js curl http://127.0.0.1:8090/api/DataOne
目录结构,node_modules是打包编译生成的

思考:
重点:mocks
扩展:express , mockjs可视化 , swagger
https://www.cnblogs.com/aeolian/p/10691151.html
https://www.cnblogs.com/soyxiaobi/p/9846057.html
可视化:https://juejin.cn/post/6956388291813834765
swagger和用:https://www.jianshu.com/p/50446a0513f8
常见的请求:https://blog.csdn.net/Z_ammo/article/details/103667230

浙公网安备 33010602011771号