【2024-04-29】Mock的基本使用

本文介绍了如何使用Node.js、Express框架、MockJS以及nodemon工具,创建一个能动态生成模拟数据的RESTfulAPI服务,包括设置目录结构、处理JSON数据和实现跨域访问。
摘要由CSDN通过智能技术生成

1、下载 nodejs  


 

2、任意位置创建一个文件夹 mock

初始化 ,一直回车

npm init

3、安装依赖

express web 框架

npm i express

mock 模拟数据

npm i mockjs

全局安装自动重启工具,监听文件变化

cnpm i nodemon -g

4、完整的目录结构

创建 api.js 

const express = require(`express`);
const fs = require('fs');
let Mock = require('mockjs'); // 引入mock
const router = express.Router();

router.use((req, res, next) => {
  console.log(`路由执行成功`, Date.now());
  next();
});

const rootDir = 'api';
/*readdir读取目录下所有文件*/
fs.readdir(`./${rootDir}`, (err, files) => {
  let dirs = files.filter((a) => {
    return a.indexOf('.js') === -1;
  });
  dirs.forEach((a) => {
    if (err) {
      console.log(err);
    } else {
      fs.readdir(`./${rootDir}/${a}`, (err1, files1) => {
        files1.forEach((item, index) => {
          /*遍历读取文件夹中的内容*/
          /*一个json文件就是一个请求*/
          router.all(`/${a}/${item.replace(/.json/, '')}`, (req, res) => {
            // 以utf8格式读取json文件内容
            fs.readFile(`./${rootDir}/${a}/${item}`, 'utf-8', (err, data) => {
              if (err) {
                console.log(err);
              } else {
                // 以json对象返回数据
                res.json(Mock.mock(JSON.parse(data)));
              }
            });
          });
        });
      });
    }
  });
});

module.exports = router;

创建 MockServer.js 

let express = require('express'); //引入express

let app = express(); //实例化express
const router = require('./api/api.js'); //  引入路由
// 跨域访问
app.use('*', (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('8888', () => {
  console.log('监听端口 8888...');
});

api 目录下创建 文件,文件夹内创建JSON数据

例如:testService.json

{
  "status": 200,
  "dataSource|1-9":[{
      "key|+11": 1,
      "mockTitle|1":["肆无忌惮"],
      "mockContent|1": ["角色精湛主题略荒诞", "理由太短 是让人不安", "疑信参半 却无比期盼", "你的惯犯 圆满", "别让纠缠 显得 孤单"],
      "mockAction|1": ["下载", "试听", "喜欢"],
      "name|1":["占山", "李四", "王五"]
  }]
}

5、开启服务器

nodemon MockServer.js

6、浏览器输入

http://127.0.0.1:8888/api/data/testService

7、返回数据 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值