在先后端分离的项目中,先后端约定好接口之后,就开始进入各自的开发阶段了,这时候咱们前端不可避免的就须要进行数据模拟,那么怎么进行数据模拟呢?我以为有两种:html
假设先后端的接口约定以下: baseurl: http://test.com前端
获取用户列表:node
既然是前端,无疑是选择nodejs做为后台语言了,框架的话express,koa,thinkjs就随意了,我就偷下懒用 thinkjs 给你们说一说了。ajax
$ npm install -g think-cli
$ thinkjs new demo;
$ cd demo;
$ npm i;
$ npm i mockjs --save;
$ npm start
复制代码
如此一来,后台服务器就已经启动了。express
由于浏览器的跨域问题,后台服务器还须要设置CORS。在app/controller/base.js中添加如下代码:npm
__before() {
this.setCORS();
const isOption = this.isMethod('options');
if (isOption) {
this.ctx.json();
return false;
}
}
setCORS() {
this.header('Access-Control-Allow-Origin', this.header('origin') || '*');
this.header('Access-Control-Allow-Headers', 'x-requested-with,token');
this.header('Access-Control-Allow-Methods', 'GET,POST,OPTIONS,PUT,DELETE');
this.header('Access-Control-Allow-Credentials', true);
}
复制代码
index/getUserList接口对应的函数为app/controller/index.js文件中的getUserListAction,json
getUserListAction() {
var data = Mock.mock({
'arr|3-9': [{
'id|+1': 1,
'username': '@email',
'realname': '@name',
}]
});
return this.ctx.success(data.arr);
}
复制代码
注:thinkjs单模块路由默认最大支持三级路由,多模块路由默认最大支持四级路由。单模块时,两级路由A/B对应的函数为controller/A.js的BAction函数,三级路由A/B/C对应的函数为controller/A/B.js的CAction函数;多模块可类比。若修改后thinkjs访问接口报错,多是thinkjs未加载修改后的文件,从新启动试试。后端
今天就介绍到这里了,有问题的欢迎下方进行评论。跨域