详解express + mock让前后台并行开发
网络编程 2021-07-04 16:45www.168986.cn编程入门
这篇文章主要介绍了详解express + mock让前后台并行开发,长沙网络推广觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随长沙网络推广过来看看吧
在我们平时项目刚启动时,由于后台也是刚开始开发,我们前端往往在开发过程中没有数据和接口请求的,都要造一些假数据进去或者使用mock造一些数据进去,这样的话往往会偶合一些没用的代码进去。到时候还得删除。
狼蚁网站SEO优化来介绍一种 express + mock 让前后台并行开发。
前后需要先商量好数据格式,等等一系列细节问题,先不多说直接上代码
app.js
'use strict'; const express = require('express'); const app = express(); // port let NODE_PORT = process.env.PORT || 4000; // 监听 /user app.use('/user', function(req, res) { // 让接口 500-1000ms 返回 好让页面有个loading setTimeout(() => { res.json({ status: 1, msg: '查询成功', data: { name: '张三' } }); }, Math.random() 500 + 500); }); app.listen(NODE_PORT, function() { console.log('mock服务在' + NODE_PORT + '端口上已启用!'); });
接下来我们当前文件打开命令窗口运行 node app.js
然后打开浏览器 输入 http://localhost:4000/user
就完成了一个简单的模拟数据,接下来我们完善下需求
如果我们在本地开发中有时候 端口不同会报跨域问题,所以我们需要在 app.js
添加一下代码
const cors = require('cors'); app.use(cors({ origin: '', methods: ['GET', 'POST', 'PUT', 'DELETE'], allowedHeaders: ['conten-Type', 'Authorization'] }));
这样就可以在别的端口访问或者别的ip内网(你)访问了。
如果我们需要访问一些静态文件的可以添加一下代码
// './' 根据自己的需求自己配置 app.use(express.static(path.join(__dirname, './')));
// 配置nodeman热更新
var nodemon = require('nodemon'); nodemon({ script: 'app.js', ext: 'json js', ignore: [ '.git', 'node_modules/' ], });
接下来继续完善, 在开发中我们不可能只有一个接口,所以我们在优化下。
app.js
'use strict'; const express = require('express'); const cors = require('cors'); const path = require('path'); var nodemon = require('nodemon'); const userRoutes = require('./user'); const areaRoutes = require('./area'); const nameListRoutes = require('./name-list'); const app = express(); app.use(cors({ origin: '', methods: ['GET', 'POST', 'PUT', 'DELETE'], allowedHeaders: ['conten-Type', 'Authorization'] })); // port let NODE_PORT = process.env.PORT || 4000; app.use(express.static(path.join(__dirname, './'))); app.use('/user', userRoutes); app.use('/area', areaRoutes); app.use('/nameList', nameListRoutes); nodemon({ script: 'app.js', ext: 'json js', ignore: [ '.git', 'node_modules/' ], }); app.listen(NODE_PORT, function() { console.log('mock服务在' + NODE_PORT + '端口上已启用!'); });
我们需要在同级目录添加以下文件
./user/index.js
, /user/area.js
, /name-list/index.js
./user/index.js
中的内容如下
'use strict'; const express = require('express'); const Mock = require('mockjs'); const apiRoutes = express.Router(); let random = Math.random() 500 + 500; // 访问 /user/ 时 apiRoutes.get('/', function(req, res) { setTimeout(() => { res.json({ status: 1, msg: '查询成功', data: { name: '张三' } }); }, random); }); // 访问 /user/1111 时 apiRoutes.get('/idList', function(req, res) { setTimeout(() => { res.json({ status: 1, msg: 'OK', data: Mock.mock({ 'list|1-10': [{ 'id|+1': 1 }] }) }); }, random); }); module.exports = apiRoutes;
我们现在在浏览器中访问
我们初步模拟数据基本就完成了。
接下需要在项目中用了
先区分环境
// 判断是否是本地开发 const isDev = process.env.NODE_ENV ==='development'; // 设置 host 本地走mock 生产环境走相对路径 /user/ const host = isDev ? 'http://localhost:4000' : '' fetch(`${host}/user/`) .then(response => { return response.json(); }) .then(data => { console.log(data ); });
假设我们在本地访问
数据都能拿到了, 在试一下 别的域名访问
跨域问题也OK。
我们在设置下 package.json
在你本地开发的命令后台添加 && node xx/aap.js
或者单独一个命令窗口运行
好了介绍到此。希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
上一篇:微信小程序实现美团菜单
下一篇:vue element项目引入icon图标的方法
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程