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、返回数据