【问题标题】:How do I pass arguments by nodeJS express app route如何通过 nodeJS express 应用程序路由传递参数
【发布时间】:2020-09-16 02:37:52
【问题描述】:

目前我有两个文件:

service.js

const routes = (app) => {
  app.route('/produce')
    .get((req, res) => res.send(`GET Method from /produce`))
    .post((req, res) => res.send(req.body))
};

module.exports = routes;

app.js

const service = require('./service.js');
service(app);

之后,当我尝试“GET”时,它会按预期返回文本“GET Method from /produce”

但是,当我尝试“发布”某些消息时,它无法返回我的请求消息。

有人可以帮忙吗?非常感谢。

【问题讨论】:

  • POST 动作的响应是什么?是 404 错误还是 200 出现意外消息?

标签: node.js express routes


【解决方案1】:

您粘贴的确切代码不起作用,因为它无法对 req 对象进行字符串化。检查express API 并确定您想从req 对象中获取哪些确切信息。

例如:

.post((req, res) => res.send(req.body))

要让req.body 工作,您需要设置一个正文解析中间件,例如 express.json() 或 express.urlencoded()。

例如,如果您正在使用application/json,请尝试类似

app.use(express.json())

【讨论】:

  • 感谢答案,但它似乎不起作用....进一步检查日志,它说 req.body 未定义....
  • req.body 是未定义的,除非您使用诸如 express.json() 或 express.urlencoded() 之类的正文解析中间件。类似app.use(express.json())。但这只是一个示例,请查看 express API 链接以获取更多详细信息...
  • 谢谢提示!我错过了 service.js 文件中的app.use(express.json()) 包含代码后,它再次正常工作,谢谢您的帮助。
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
相关资源
最近更新 更多