VUE开发请求本地数据的配置,旧版本dev-server.js,新版本webpack.dev.conf.js
VUE开发请求本地数据的配置,早期的vue-lic下面有dev-server.js和dev-client.js两文件,请求本地数据在dev-server.js里配置,最新的vue-webpack-template 中已经去掉了dev-server.js和dev-client.js 改用webpack.dev.conf.js代替,所以配置本地访问在webpack.dev.conf.js里配置即可。
1、旧版dev-server.js配置本地数据访问:
在const app = express()后,const compiler = webpack(webpackConfig)前配置即可,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
var appData = require( '../data.json' )
var seller = appData.seller var goods = appData.goods var ratings = appData.ratings var foods = appData.foods var pice = appData.pice var apiRoutes = express.Router() apiRoutes.post( '/foods' , function (req, res) {
res.json({
errno: 0,
data: foods
});
}) apiRoutes.get( '/seller' , function (req, res) {
res.json({
errno: 0,
data: seller
});
}) apiRoutes.get( '/goods' , function (req, res) {
res.json({
errno: 0,
data: goods
})
}) apiRoutes.get( '/ratings' , function (req, res) {
res.json({
errno: 0,
data: ratings
});
}) apiRoutes.get( '/pice' , function (req, res) {
res.json({
errno: 0,
data: pice
});
}) app.use( '/api' ,apiRoutes)
|
2、新版webpack.dev.conf.js配置本地数据访问:
在const portfinder = require(‘portfinder’)后添加
1
2
3
4
5
6
7
8
9
|
//首先 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 apiRoutes = express.Router() app.use( '/api' , apiRoutes)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
//然后找到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
})
})
} 有的同学说报错,不能识别before,注意看下你的配置。 |
1 |
补充说一下,有的同学配置后说不能访问,所有的修改配置都需要重新启动运行命令的:npm run dev才能生效(切记 ),还有data.json数据也不能少,就放在跟目录下跟index.html同级;data.json的部分数据:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
{ "seller" : {
"name" : "粥品香坊(回龙观)" ,
"description" : "蜂鸟专送" ,
"deliveryTime" : 38,
"score" : 4.2,
"serviceScore" : 4.1,
"foodScore" : 4.3,
"rankRate" : 69.2,
"minPrice" : 20,
"deliveryPrice" : 4,
"ratingCount" : 24,
"sellCount" : 90,
"bulletin" : "粥品香坊其烹饪粥料的秘方源于中国千年古法,在融和现代制作工艺,由世界烹饪大师屈浩先生领衔研发。坚守纯天然、0添加的良心品质深得消费者青睐,发展至今成为粥类的引领品牌。是2008年奥运会和2013年园博会指定餐饮服务商。" ,
"supports" : [
{
"type" : 0,
"description" : "在线支付满28减5"
},
{
"type" : 1,
"description" : "VC无限橙果汁全场8折"
},
{
"type" : 2,
"description" : "单人精彩套餐"
},
{
"type" : 3,
"description" : "该商家支持发票,请下单写好发票抬头"
},
{
"type" : 4,
"description" : "已加入“外卖保”计划,食品安全保障"
}
],
"pics" : [
],
"infos" : [
"该商家支持发票,请下单写好发票抬头" ,
"品类:其他菜系,包子粥店" ,
"北京市昌平区回龙观西大街龙观置业大厦底商B座102单元1340" ,
"营业时间:10:00-20:30"
]
}
} |
这样就可以访问本地接口:https://localhost:8080/api/seller 了
以上为get请求,有同学问post怎么设置,再补充下POST请求:
1
2
3
4
5
6
7
|
老版本: apiRoutes.<strong>post</strong>( '/foods' , function (req, res) { //注意这里改为post就可以了
res.json({
errno: 0,
data: foods
});
}) |
1
2
3
4
5
6
7
|
新版本: app.post( '/api/foods' , function (req, res) { // 注意这里改为post就可以了
res.json({
errno: 0,
data: foods
});
}) |
1
2
3
4
5
6
|
在组件里面: created () { console.log(response)
})
} |
原文转自:https://www.2cto.com/kf/201712/704330.html