在先後端分離的項目中,先後端約定好接口之後,就開始進入各自的開發階段了,這時候咱們前端不可避免的就須要進行數據模擬,那麼怎麼進行數據模擬呢?我以爲有兩種: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未加載修改後的文件,從新啓動試試。後端
今天就介紹到這裏了,有問題的歡迎下方進行評論。跨域