最近在用node(用的express框架)写数据接口,前端(用的vue-cli)异步获取数据,实尝试前后端分离的过程。
发现get和post请求对参数的处理方法不太相同。
GET
方法
首先说前端请求接口传入参数时需要param来传递 (在vue中用的vue-resource实现异步请求)
let param = {page: this.page}
this.$http.get('/goods', {params: param}).then(res => {
res = res.body //这里注意,对接受的数据做第一步处理时 vue-resource用的是res.body,而axios用的是res.data
//处理数据...
})
后端接口的实现也需要用param来获取请求的参数
router.get('/', (req, res, next) => {
page = req.param('page') //或者page = req.query.page
})
POST
方法
首先还是前端请求不需要用param来传递参数,直接传入即可
this.$http.get('/goods', {page: this.page}).then(res => {
res = res.body
//处理数据...
})
后端接口需要通过req.body
来获取参数来处理
router.get('/', (req, res, next) => {
page = req.body.page
})
虽然这是个小问题,跳进去也是很费精力爬,所以,记下来提醒自己。