【发布时间】:2018-07-04 00:41:14
【问题描述】:
不是服务器中间件之类的专业人士,但没有太多线索。
在一个 vue 组件中,我使用 axios 检索数据:
axios
.get('/api/getDailyFeedback', {
params: {
start: '2018-05-01'
}
})
这用于 Nuxt 中的 express(4.16.2 版)服务器中间件设置。我已经获得了正常的获取和发布请求,但问题是当我想将参数传递给获取请求时,如下所示:
router.get('/getDailyFeedback', (req, res) => {
console.log('Query:', req.query.start);
//do stuff
});
我对 Express 4 的小经验,我花了一点时间才意识到为什么在 post 请求的正文中传递的参数是未定义的,但这是因为我需要添加 body-parser.json()到我的 nuxt 配置,因为他们从主快递包中删除了它。同样,我认为我需要 bodyParse.urlencoded 但这没有用。这是我添加到我的 nuxt.config 的行:
serverMiddleware: [bodyParser.urlencoded({ extended: false }), bodyParser.json(), '~/api'],
我不确定内容类型是否设置不正确,或者我在这里遗漏了一些简单的东西。我知道我可以使用各种库从我可以访问的 url 字符串中获取参数,因为 Axios 正在按预期工作并将我的“params”对象添加到我的 get 请求的末尾。但是我看到的许多其他问题的解决方案是“哦,就像访问 req.query 一样简单”Alas Express 无法定义 req.query 对象,甚至是 req.params 或 req.body。
希望这是足够的细节,非常感谢您的阅读和任何建议。
【问题讨论】:
标签: node.js express vue.js axios nuxt.js