使用mock.js隨機(jī)數(shù)據(jù)和使用express輸出json接口的實(shí)現(xiàn)方法
前端項(xiàng)目都會(huì)用到后端的接口,但當(dāng)后臺(tái)接口沒(méi)有寫(xiě)好的時(shí)候,這時(shí)候可以用mock.js先隨機(jī)生成一些假數(shù)據(jù)來(lái)調(diào)試頁(yè)面
安裝mock.js
先用express創(chuàng)建一個(gè)nodejs的web項(xiàng)目,名字假如是 demo ,這里就不說(shuō)了
yarn add mockjs
使用
const Mock = require('mockjs')
var data = Mock.mock({
'list|2': [{
'id|+1': 1,
'color': '@color()',
'date': '@datetime()',
'img': '@image()',
'url': '@url(http)',
'email': '@email()',
'name': "@name(1,2)",
'text': '@paragraph()'
}]
})
console.log(JSON.stringify(data))
上面的隨機(jī)方法在最下面給出的mockjs文檔的鏈接里可以找到,Mock.Random調(diào)用的方法,直接拿來(lái)在前面加上@就可以用了,非常方便
輸出
{
"list": [
{
"id": 1,
"color": "#8179f2",
"date": "2015-06-22 12:10:08",
"img": "http://dummyimage.com/250x250",
"url": "http://hwujcvh.fk/vfrjfmi",
"email": "y.ahbatuekk@mbkhfybrh.pl",
"name": "James Ronald Rodriguez",
"text": "Zsogshtw qjscoe qwggnfk ppbdpqd avftd pvczrvnu gsyfyefm rbnbjyy tgemy buple ieghyjp klcxauofu lhjmnb kjpyodk. Njync ysrvx jevei stawy mcosrlpo iacryqob wkkcfuh nkrrdutr zduikjvtf dcv pppbhi ygjnkmg xvpusp ayu lvu. Wgqmtwvo ibqzp cct kodyh ovz slo cpc uqaseuwv ubjgbf hihh oudly mooztiojpi tubmwhsmb kktbkyqp hsvwgoluu jrkosqudm. Wpumdvtw riytwoa sbittrr xtjy beorkb osnjpigntu ndrgxhozeq iufhu hpuirgmh lstoijpqx hopk lkxceqhvr uymj pgdms njjmu ivxijmokn."
},
{
"id": 2,
"color": "#94f279",
"date": "1980-02-20 19:46:44",
"img": "http://dummyimage.com/336x280",
"url": "http://voyqj.cx/jjyksqzur",
"email": "k.ydgui@gixl.cr",
"name": "Ronald Nancy Harris",
"text": "Lbdpwqwpgd sodipqu oncnnyis ebtwho dnbt fqxnjyzr qtrriop gfbjt prto dgmtgff gwaqnhon sdlvpxpj pqomfflsc skj. Cvteunoj oqmjnfm vowvmw ypywtr klcazkvg cvsyzayytl bgvywe kfqqzhfg iahm jwury xsgf xnr pvfxwhaed nauookwi xuxtgnwq flcbmnrm qglgziy vegml. Cexit vdotefuj nptmei hekmljnt bukxrd ndhj lkfyjcv oldpgo rrj kprfklt nfks yvrvc. Aynbyd hxguza ftjrn kmlirqo wxald jqjkvahim jnhezpgm usev qbynwhm yotehgkwdg eyxj vfnm icchnds dgmd odxajing vqrdl yhpp eba. Tykxnhe njod bslwbsjcj rwlv rkvxk rypew fpfqrqi psislxuwgs jcwrbtfn qeszy leovhc jwupwzo kitct nhbdhjq xyiajxms. Gfgkw nnlg drcqnpwn bowqknwy oiw yysaohk fqqsbgvp mulik vusikwv nbp kpbo nhti dhf hrgql."
}
]
}
集成到express里輸出json
const Mock = require('mockjs')
exports.index = function(req, res) {
var data = Mock.mock({
'list|2': [{
'id|+1': 1,
'color': '@color()',
'date': '@datetime()',
'img': '@image()',
'url': '@url(http)',
'email': '@email()',
'name': "@name(1,2)",
'text': '@paragraph()'
}]
})
// 延時(shí)1秒,模擬網(wǎng)絡(luò)請(qǐng)求時(shí)間
setTimeout(function() {
res.send(JSON.stringify(data))
}, 1000);
}
express跨域
接口地址跟前端項(xiàng)目地址肯定會(huì)不一樣,這時(shí)候請(qǐng)求接口就會(huì)涉及到跨域的問(wèn)題,express里的解決辦法如下
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:8080");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
res.header('Access-Control-Allow-Credentials', true);
next();
});
說(shuō)明:上面代碼是在網(wǎng)上找的,不過(guò)網(wǎng)上找的沒(méi)有這句 res.header('Access-Control-Allow-Credentials', true);
我前端項(xiàng)目的地址是 http://localhost:8080 所以 Access-Control-Allow-Origin 的值就是 http://localhost:8080
可以根據(jù)自己的服務(wù)器來(lái)修改
參考
總結(jié)
以上所述是小編給大家介紹的使用mock.js隨機(jī)數(shù)據(jù)和使用express輸出json接口的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
- vue+mockjs模擬數(shù)據(jù)實(shí)現(xiàn)前后端分離開(kāi)發(fā)的實(shí)例代碼
- Node.js服務(wù)器環(huán)境下使用Mock.js攔截AJAX請(qǐng)求的教程
- vue-cli項(xiàng)目中使用Mockjs詳解
- vue+vuecli+webpack中使用mockjs模擬后端數(shù)據(jù)的示例
- Vue+Mock.js模擬登錄和表格的增刪改查功能
- Node.js測(cè)試中的Mock文件系統(tǒng)詳解
- kmock javascript 單元測(cè)試代碼
- express+mockjs實(shí)現(xiàn)模擬后臺(tái)數(shù)據(jù)發(fā)送功能
- vue+axios+mock.js環(huán)境搭建的方法步驟
- mockjs+vue頁(yè)面直接展示數(shù)據(jù)的方法
- mock.js實(shí)現(xiàn)模擬生成假數(shù)據(jù)功能示例
相關(guān)文章
JavaScript 圖像動(dòng)畫(huà)的小demo
深夜沒(méi)睡著,起來(lái)翻了翻《JavaScript權(quán)威指南》這本書(shū),看了下圖形動(dòng)畫(huà)的demo,學(xué)習(xí)學(xué)習(xí)了2012-05-05
JavaScript閉包函數(shù)訪問(wèn)外部變量的方法
這篇文章主要介紹了JavaScript閉包函數(shù)訪問(wèn)外部變量的方法,本文使用匿名函數(shù)來(lái)實(shí)現(xiàn)在閉包中訪問(wèn)外部變量,需要的朋友可以參考下2014-08-08
wap手機(jī)圖片滑動(dòng)切換特效無(wú)css3元素js腳本編寫(xiě)
手機(jī)圖片滑動(dòng)切換,網(wǎng)上有很多這樣的例子,但都借助于其他組件,讓代碼混亂的不行,本例無(wú)css3元素js腳本編寫(xiě),需要的朋友可以參考下2014-07-07
JS使用正則表達(dá)式驗(yàn)證身份證號(hào)碼
這篇文章主要介紹了JS使用正則表達(dá)式驗(yàn)證身份證號(hào)碼的相關(guān)資料,需要的朋友可以參考下2017-06-06
JavaScript實(shí)現(xiàn)為input與textarea自定義hover,focus效果的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)為input與textarea自定義hover,focus效果的方法,可實(shí)現(xiàn)根據(jù)鼠標(biāo)事件動(dòng)態(tài)改變input與textarea樣式的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

