初始化项目 node-express-mock-demo

使用默认配置

npm init -y

依赖安装

用到的依赖

  • express
  • mockjs
  • supervisor

本地开发需要的依赖安装

npm i express mockjs --save

全局依赖安装

sudo npm i supervisor -g

package.json

{"name": "node-express-mock-demo","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","start": "supervisor server.js"},"keywords": [],"author": "","license": "ISC","dependencies": {"express": "^4.17.1"},"devDependencies": {"mockjs": "^1.1.0"}
}

创建文件

在根目录下面新建server.js

const express = require('express');
const app = express();
const { Book, Card } = require('./mock');app.post('/api/book', (req, res) => res.json(Book))app.get('/api/card', (req, res) => res.json(Card))app.get('/api/get', (req, res) => {res.json({method: 'GET',stu: {name: 'ddd'}})
})app.post('/api/post', (req, res) => {res.json({method: 'POST',car: {brand: 'BWM',price: 1900}})
})app.listen(5888, () => {console.log('node 服务器已经启动!');
});

根目录下面创建mock文件夹,新建 index.js、book.js、card.js…(你需要的mock数据文件)

book.js

const Mock = require('mockjs');
const express = require('express');
const apiRoutes = express.Router();const Random = Mock.Random;const titles = Random.shuffle(["Brother's Rainbow","A Dream of Justice","A Marriage Collection","Midwife and Light","The Trophy Failure","Destiny's Cut","Rakehell's Fog","The Ragged ","Thread","The Thug Chaser","Church in the Glass","Destiny's Hero","Cat in the Underworld","Triumph of the Empire","Sapphire Raiders","The Time of War","冬天的早班飞机","我们始终没有牵手旅行","不想告别的夏天","最初的爱情","最后的仪式","十一种孤独","一部法国小说","还乡之谜","地下时光","给樱桃以性别","天使与昆虫","在路上","绿皮书","老人与海","追风筝的人","小王子","百年孤独","人类简史","时间简史","心有林夕","麦田里的守望者"
]);const images = ["http://qiniu.library-online.cn/image1.jpg","http://qiniu.library-online.cn/image10.jpeg","http://qiniu.library-online.cn/image12.jpeg","http://qiniu.library-online.cn/image13.jpeg","http://qiniu.library-online.cn/image14.jpg","http://qiniu.library-online.cn/image16.jpg","http://qiniu.library-online.cn/image17.jpg","http://qiniu.library-online.cn/image2.jpg","http://qiniu.library-online.cn/image20.png","http://qiniu.library-online.cn/image21.png","http://qiniu.library-online.cn/image22.png","http://qiniu.library-online.cn/image23.png","http://qiniu.library-online.cn/image24.png","http://qiniu.library-online.cn/image3.jpg","http://qiniu.library-online.cn/image4.jpg","http://qiniu.library-online.cn/image5.jpg","http://qiniu.library-online.cn/image6.jpeg","http://qiniu.library-online.cn/image7.jpg","http://qiniu.library-online.cn/image8.png","http://qiniu.library-online.cn/image9.jpg"
];const authors = (function () {let t = ["[哥]加西亚·马尔克斯", "[英]毛姆", "[法]圣-埃克苏佩里"];for (let i = 0; i < 10; i++) t.push(Random.name());return Random.shuffle(t);
})();const data = Mock.mock({data: {'list|80-100': [{id: "@increment","userId|+1": [1, 2, 3, 4],"title|+1": titles,isbn: "@natural(9781782910284, 9981782910284)",publisher: "上海人民出版社",pubdate: "@date","author|+1": authors,translator: "@cname",binding: "精装",price: "@float(60, 100, 2, 2)",pages: "@integer(60, 100)",words: "@integer(60, 100)",tags: ["小说", "文学", "名著"],score: "@float(0, 10, 1, 1)",review_num: "@integer(60, 100)","image|+1": images,introduction:"12岁的阿富汗富家少爷阿米尔与仆人哈桑情同手足。然而,在一场风筝比赛后,发生了一件悲惨不堪的事,阿米尔为自己的懦弱感到自责和痛苦,逼走了哈桑,不久,自己也跟随父亲逃往美国。\n成年后的阿米尔始终无法原谅自己当年对哈桑的背叛。为了赎罪,阿米尔再度踏上暌违二十多年的故乡,希望能为不幸的好友尽最后一点心力,却发现一个惊天谎言,儿时的噩梦再度重演,阿米尔该如何抉择?\n故事如此残忍而又美丽,作者以温暖细腻的笔法勾勒人性的本质与救赎,读来令人荡气回肠。"}]},errorMessage: '',statusCode: '200'
})module.exports = data;

card.js

const Mock = require('mockjs');const data = Mock.mock({data: {"list|1-10": [{"orderId|1-10": /[a-zA-Z1-9]/,"num|1-8": /[1-9]/,"isReport": false,"title": "样本接收","sendTime": "@date","userName": "@name","examname": "原溯450"}]},errorMessage: '',statusCode: '200'
})module.exports = data

index.js

const Book = require('./book');
const Card = require('./card');module.exports = {Book,Card
}

运行项目

npm start

打开浏览器:http://localhost:5888/api/book 你就会看到我们mock的数据了,在其他地方调用的话就像平时调后台接口一样的方法就好了。

源代码已上传github、gitee

  • github代码仓库
  • gitee代码仓库
  • Mock 开发文档

node+express+mock相关推荐

  1. node修改服务器默认端口,用node+express搭建服务器,解决跨域问题,更改端口号...

    在学习前端的过程中,最开始我们需要展示在页面上的数据都是写死在系统里的假数据.然而,实际上前端是要与后台服务器交互进行数据存取的.如何搭建服务器见下文. 一.使用Node.js+express用命令行 ...

  2. mysql第五章项目二_Todo List:Node+Express 搭建服务端毗邻Mysql – 第五章(第1节)

    点击右上方红色按钮关注"web秀",让你真正秀起来 前言 万丈高楼平地起,我们的Todo List项目也是越来越结实了.Todo List的前面4章内容都是在为Client端开发, ...

  3. node+express学习日记

    1.20160505 node+express直接返回一个html静态页面 2.20160505 使用字符串模式的路由路径 3.20160505 使用字符串的路由路径 4.20160505 路由匹配规 ...

  4. 【HAVENT原创】Node Express API 通用配置

    为什么80%的码农都做不了架构师?>>>    ( 基于 Express 4.x ) 启动文件 /app.js: var express = require('express'); ...

  5. node+express项目链接MySQL数据库(最简单版)

    node+express项目链接MySQL数据库(最简单版) (假定你node+express项目已创建完成,可参照这里) 第一步.安装mysql驱动 npm install mysql --save ...

  6. node+express创建第一个node项目

    一.安装nodejs 1.到官网下载nodejs安装包 中文官网地址:http://nodejs.cn/ 英文官网地址:https://nodejs.org/en/ 根据自己的系统和版本,选择下载对应 ...

  7. node ajax validator,node/express 4:在ajax post上使用express-validator显示错误

    我是新来的节点,当用户尝试提交表单时,尝试显示验证错误(使用express-validator和express 4).node/express 4:在ajax post上使用express-valid ...

  8. 微信扫码关注登录(vue+node+express+mongodb)

    微信扫码关注登录(vue+node+express+mongodb) 文章目录 前言 一.微信扫码关注登录是什么? 二.为什么要使用微信扫码关注登录? 三.思路 前端部分 后端部分: 四.微信后台 授 ...

  9. node+express实现文件上传功能

    在进行node web开发时,我们可能经常遇到上传文件的问题,这一块如果我们没有经验,可能会遇到很多坑,下面我将跟大家分享一下,实现文件上传的一些方式. 一.node+express文件上传的常用方式 ...

最新文章

  1. 深度学习的核心:掌握训练数据的方法
  2. Java程序员从笨鸟到菜鸟之(八十六)跟我学jquery(二)大话jquery选择器
  3. 字体大小的设置_ios 设置的字体大小与实际的字体大小不一致
  4. 时间序列模型(ARIMA模型)
  5. twitter api 无法连接_光大银行牟健君:金融API的安全问题和应对技术
  6. 使用QUIC协议实现实时视频直播0卡顿
  7. Elasticsearch学习(2)—— 常见术语
  8. opencv图像处理中的一些滤波器+利用滤波器提取条形码(解析二维码)+公交卡倾斜矫正+物体尺寸丈量
  9. linux文档采集前五行,Linux 学习-Shell筛选top前五行信息
  10. 第11周多线程 学习总结
  11. php arraymap 匿名函数,结合代码详细为你讲解,php中的array_map,array_walk以及匿名函数...
  12. PDF预览之PDFObject.js总结
  13. html按钮点击后无效,关于html中按钮的单击事件,第一次单击可以运行,再次单击不能运行的解决方法...
  14. 【程序人生】从外包到大厂,你知道我这一个月是怎么过的吗?
  15. 最新后盾网Smarty框架教程 Smarty重入门到实战教程 共14课
  16. 计算机网络请子网划分,计算机网络不同主机数的子网划分
  17. NUC的型号说明及其他的一些信息
  18. 科技兴关,荣联与天津海关共建基因组数据库及分析平台
  19. Proxifier Socks5 代理(内网访问、远程办公)
  20. Firefox 禁止中国用户!!

热门文章

  1. OneNMP路由器、交换机监控
  2. 图文详解在Windows系统中安装JDK
  3. 用 Python 实现 RSI 指标线与股价的顶背离、底背离
  4. 电热水器排污口镁棒掉入内胆怎么办?
  5. 递推计算小白兔拔萝卜问题的最有矩阵
  6. 你应该解雇工作狂程序员的5个原因
  7. Ubuntu系统从机械硬盘迁移到SSD
  8. 7-zip安装与使用
  9. ASP.NET在线学习系统
  10. html+js在前端实现条码枪功能Demo