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

 

posted @ 2022-01-22 11:43  gina_qq  阅读(180)  评论(0)    收藏  举报