mock的使用及取消,node模仿本地请求:为了解决前后端分离,用户后台没写完接口的情况下
借鉴:https://www.jianshu.com/p/dd23a6547114
1、说到这里还有一种是配置node模拟本地请求
(1)node模拟本地请求: 补充一下
【1】首先在根目录下建一个data.json,用来存放一些返回数据,名字随便取好了
[2]在webpack.dev.conf.js文件里
在这个const portfinder = require('portfinder')的下面 1、 //模拟后台请求
const express = require('express')
const app = express()
var appData = require('../data.json')//加载本地数据文件
var seller = appData.seller//获取对应的本地数据
var goods = appData.goods
var ratings = appData.ratings//这里获取导数据的变量名自己看着定义好了
var mine = appData.mine
var apiRoutes = express.Router()
app.use('/api', apiRoutes)
//第一部分结束----------------- 2、第二部分,在devServer对象里面加
before(app){
//模拟后台请求第二部分
app.get('/api/seller', (req, res) => {
res.json({
errno: 0,
data: seller
})//接口返回json数据,上面配置的数据seller就赋值给data请求后调用
}),
app.get('/api/goods', (req, res) => {
res.json({
errno: 0,
data: goods
})
}),
app.get('/api/ratings', (req, res) => {
res.json({
errno: 0,
data: ratings
})
}),
app.get('/api/mine', (req, res) => {
res.json({
errno: 0,
data: mine
})
})
} 3、然后前端页面正常请求就好了
var url = 'http://localhost:8081/api/mine';
var data = '';
this.$http.get(url).then((response) => {
var result = JSON.parse(response.bodyText).data.content;
this.tqzData = result.tqz.loops;
this.myOrder = result.myOrder;
this.tools = result.tools; this.$nextTick(function(){
that.setBgImg();//用setTimeout 200也可以获取到
}) })
2、mock自己简单的使用
import Mock from 'mockjs'
import navlist from './navlist'
import login from './login'
import echarts from './echarts'
import table from './table'
import groupList from './groupList'
import getToken from './getToken' let data = [].concat(navlist, login, echarts, table, groupList, getToken) data.forEach(function(res){
Mock.mock(res.path, res.data)
}) export default Mock 例如 login.js
var data = {
'login': '@boolean',
'captcha': "@image('100x40', '#FFFFFF', '@word')",
'message': '这里是登录提交后错误提示信息@increment',
'uid': '@id',
'name': '@cname',
'token': '@guid'
} export default [{
path: '/login',
data: data
}] 页面调用这个接口
axios({
url: '/login',
method: 'post',
data: {
param:''
}
}).then(res => {
if(res.login){// 把token和用户名存到 cookie里
commit('setToken', res.token)
commit('user/setName', res.name, { root: true })
}
resolve(res)
})
3、查了下资料,mock的功能是拦截ajax的请求,模仿后台的接口返回数据,下面是看到别人文章觉得介绍很详细,摘录一下
(1)mock的使用 ****
// 使用 Mock
let Mock = require('mockjs');
Mock.mock('http://1.json','get',{
// 属性 list 的值是一个数组,其中含有 1 到 3 个元素
'list|1-3': [{
// 属性 sid 是一个自增数,起始值为 1,每次增 1
'sid|+1': 1,
// 属性 userId 是一个5位的随机码
'userId|5': '',
// 属性 sex 是一个bool值
"sex|1-2": true,
// 属性 city对象 是对象值中2-4个的值
"city|2-4": {
"110000": "北京市",
"120000": "天津市",
"130000": "河北省",
"140000": "山西省"
},
//属性 grade 是数组当中的一个值
"grade|1": [
"1年级",
"2年级",
"3年级"
],
//属性 guid 是唯一机器码
'guid': '@guid',
//属性 id 是随机id
'id': '@id',
//属性 title 是一个随机长度的标题
'title': '@title()',
//属性 paragraph 是一个随机长度的段落
'paragraph': '@cparagraph',
//属性 image 是一个随机图片 参数分别为size, background, text
'image': "@image('200x100', '#4A7BF7', 'Hello')",
//属性 address 是一个随机地址
'address': '@county(true)',
//属性 date 是一个yyyy-MM-dd 的随机日期
'date': '@date("yyyy-MM-dd")',
//属性 time 是一个 size, background, text 的随机时间
'time': '@time("HH:mm:ss")',
//属性 url 是一个随机的url
'url': '@url',
//属性 email 是一个随机email
'email': '@email',
//属性 ip 是一个随机ip
'ip': '@ip',
//属性 regexp 是一个正则表达式匹配到的值 如aA1
'regexp': /[a-z][A-Z][0-9]/,
}]
}) 2、如何拦截ajax请求
Mock.mock( rurl, rtype, template ) 如 Mock.mock('1.json','get',{
'sid|+1': 1,
} )
记录数据模板。当拦截到匹配 rurl 和 rtype 的 Ajax 请求时,
将根据数据模板 template 生成模拟数据,并作为响应数据返回。 3、如何在后端接口完成的时候,取消mock数据
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"mock"'
}
}),
process.env.NODE_ENV=='mock' && require('./mock/1.js');
process.env.NODE_ENV=='mock' && require('./mock/2.js'); 根据webpack环境,在需要mock的时候,配置环境为mock,
在不需要mock的时候,只需要修改node_env 环境就可以了
无需注释代码,就可以完美解决后端接口还没完成的情况
mock的使用及取消,node模仿本地请求:为了解决前后端分离,用户后台没写完接口的情况下的更多相关文章
- 前后端分离之让前端开发脱离接口束缚(mock)
情景: 领导:小吴啊,最近在忙什么啊? 前吴:(心想:我擦勒,难道划水被领导发现了?也不能怪我啊,后台的哥们接口还没给呢,但要是实话实说不就对不起后台哥们了吗?) ...
- 在本地设置 http-proxy 代理 (前后端分离)
1. 利用package.json 安装nodejs,创建package.json文件:内容如下 "dependencies": { "http-proxy": ...
- [转] 前后端分离开发模式的 mock 平台预研
引入 mock(模拟): 是在项目测试中,对项目外部或不容易获取的对象/接口,用一个虚拟的对象/接口来模拟,以便测试. 背景 前后端分离 前后端仅仅通过异步接口(AJAX/JSONP)来编程 前后端都 ...
- vue+node+mongodb前后端分离博客系统
感悟 历时两个多月,终于利用工作之余完成了这个项目的1.0版本,为什么要写这个项目?其实基于vuejs+nodejs构建的开源博客系统有很多,但是大多数不支持服务端渲染,也不支持动态标题,只是做到了前 ...
- 前后端分离(手)-- 使用mock.js(好样的)
## 前言: 本篇博文昨天七夕写的,一天下来被虐得体无完肤,苦逼的单身狗只能学习,对!我爱学习,关掉朋友圈,并写了一篇博文发泄发泄.这次写mock.js的使用,能使前后端分离,分离,分离,重要的是说三 ...
- 基于RAP(Mock)实现前后端分离开发
看看RAP的官方定义: 什么是RAP? (Rigel API Platform) 在前后端分离的开发模式下,我们通常需要定义一份接口文档来规范接口的具体信息.如一个请求的地址.有几个参数.参数名称及类 ...
- java结合node.js非对称加密,实现密文登录传参——让前后端分离的项目更安全
前言 在参考互联网大厂的登录.订单.提现这类对安全性操作要求较高的场景操作时发现,传输的都是密文.而为了目前项目安全,我自己负责的项目也需要这方面的技术.由于,我当前的项目是使用了前后端分离技术, ...
- Node前后端分离基本概括
首先从一个重要的概念“模板”说起. 广义上来说,web中的模板就是填充数据后可以生成文件的页面. 严格意义上来说,应该是模板引擎利用特定格式的文件和所提供的数据编译生成页面.模板大致分为前端模板(如e ...
- 前后端分离(手) -- mock.js
前言: 本篇博文昨天七夕写的,一天下来被虐得体无完肤,苦逼的单身狗只能学习,对!我爱学习,关掉朋友圈,并写了一篇博文发泄发泄.这次写mock.js的使用,能使前后端分离,分离,分离,重要的是说三遍. ...
随机推荐
- primecoin 全节点日常维护操作
primecoin 全节点日常维护操作: 一.关于primecoin维护,每天检查这6个地址是否能正常访问: http://api.primecoin.org/rest/pcoin/syncblock ...
- pip升级报错(权限问题)
今天跟新pip的时候错一个接一个 看到拒绝访问应该是权限的问题,想起安装的时候选择谁可以使用软件(大概是这样的一个选项),选择了“只有我”,选择所有用户应该就不会存在这个问题了,那么怎么解决呢? 敲黑 ...
- JS监听video视频播放时间
采用原生时间监听element.addEventListener(event, function, useCapture) //监听播放时间 var video = document.getEleme ...
- (3)LoraWAN:链路控制、SF BW CR
三.Introduction on LoRaWAN options 本文件描述了一种用于可为移动的或固定在一个固定位置的电池供电的终端设备而优化的LoRaWAN™网络协议.LORA™是一个由Semte ...
- [经验] 使用 jQuery+JSON 实现国际化
技术选型关键词: [spring boot] [jQuery] [JSON] [JSP] 前言: 关于国际化, 我在一开始的时候就有一个误解, 我认为所谓国际化就是编写一段高技术含量的代码, 然后这 ...
- 079、Java数组之数组的静态初始化
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- php 投票系统
1.投票主界面(问题界面) <?php$db = new Mysqli("localhost","root","root"," ...
- 通用dao的demo
代码片段 1. [代码]整型映射工具 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package org.dave.common.databas ...
- leetcode347 Top K Frequent Elements
""" Given a non-empty array of integers, return the k most frequent elements. Example ...
- 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:抽象类与接口的应用
abstract class A{ // 定义抽象类A public abstract void print() ; // 定义抽象方法print() }; class B extends A { / ...