使用mock.js随机数据和使用express输出json接口的实现方法
前端项目都会用到后端的接口,但当后台接口没有写好的时候,这时候可以用mock.js先随机生成一些假数据来调试页面
安装mock.js
先用express创建一个nodejs的web项目,名字假如是demo,这里就不说了
yarnaddmockjs
使用
constMock=require('mockjs')
vardata=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))
上面的随机方法在最下面给出的mockjs文档的链接里可以找到,Mock.Random调用的方法,直接拿来在前面加上@就可以用了,非常方便
输出
{
"list":[
{
"id":1,
"color":"#8179f2",
"date":"2015-06-2212:10:08",
"img":"http://dummyimage.com/250x250",
"url":"http://hwujcvh.fk/vfrjfmi",
"email":"y.ahbatuekk@mbkhfybrh.pl",
"name":"JamesRonaldRodriguez",
"text":"Zsogshtwqjscoeqwggnfkppbdpqdavftdpvczrvnugsyfyefmrbnbjyytgemybupleieghyjpklcxauofulhjmnbkjpyodk.Njyncysrvxjeveistawymcosrlpoiacryqobwkkcfuhnkrrdutrzduikjvtfdcvpppbhiygjnkmgxvpuspayulvu.Wgqmtwvoibqzpcctkodyhovzslocpcuqaseuwvubjgbfhihhoudlymooztiojpitubmwhsmbkktbkyqphsvwgoluujrkosqudm.Wpumdvtwriytwoasbittrrxtjybeorkbosnjpigntundrgxhozeqiufhuhpuirgmhlstoijpqxhopklkxceqhvruymjpgdmsnjjmuivxijmokn."
},
{
"id":2,
"color":"#94f279",
"date":"1980-02-2019:46:44",
"img":"http://dummyimage.com/336x280",
"url":"http://voyqj.cx/jjyksqzur",
"email":"k.ydgui@gixl.cr",
"name":"RonaldNancyHarris",
"text":"Lbdpwqwpgdsodipquoncnnyisebtwhodnbtfqxnjyzrqtrriopgfbjtprtodgmtgffgwaqnhonsdlvpxpjpqomfflscskj.Cvteunojoqmjnfmvowvmwypywtrklcazkvgcvsyzayytlbgvywekfqqzhfgiahmjwuryxsgfxnrpvfxwhaednauookwixuxtgnwqflcbmnrmqglgziyvegml.Cexitvdotefujnptmeihekmljntbukxrdndhjlkfyjcvoldpgorrjkprfkltnfksyvrvc.Aynbydhxguzaftjrnkmlirqowxaldjqjkvahimjnhezpgmusevqbynwhmyotehgkwdgeyxjvfnmicchndsdgmdodxajingvqrdlyhppeba.Tykxnhenjodbslwbsjcjrwlvrkvxkrypewfpfqrqipsislxuwgsjcwrbtfnqeszyleovhcjwupwzokitctnhbdhjqxyiajxms.Gfgkwnnlgdrcqnpwnbowqknwyoiwyysaohkfqqsbgvpmulikvusikwvnbpkpbonhtidhfhrgql."
}
]
}
集成到express里输出json
constMock=require('mockjs')
exports.index=function(req,res){
vardata=Mock.mock({
'list|2':[{
'id|+1':1,
'color':'@color()',
'date':'@datetime()',
'img':'@image()',
'url':'@url(http)',
'email':'@email()',
'name':"@name(1,2)",
'text':'@paragraph()'
}]
})
//延时1秒,模拟网络请求时间
setTimeout(function(){
res.send(JSON.stringify(data))
},1000);
}
express跨域
接口地址跟前端项目地址肯定会不一样,这时候请求接口就会涉及到跨域的问题,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();
});
说明:上面代码是在网上找的,不过网上找的没有这句res.header('Access-Control-Allow-Credentials',true);
我前端项目的地址是http://localhost:8080所以Access-Control-Allow-Origin的值就是http://localhost:8080
可以根据自己的服务器来修改
参考
•mockjs文档
总结
以上所述是小编给大家介绍的使用mock.js随机数据和使用express输出json接口的实现方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!