【问题标题】:Cannot access POST data [duplicate]无法访问 POST 数据 [重复]
【发布时间】:2014-03-13 04:06:30
【问题描述】:

我无法在我的 node.js 应用程序中访问 POST 数据。我也在用快递。

app.js:

app.post("/sent_message", function(request, response){
    console.log(request.body.message.name + " " + request.body.message.content);
});

HTML:

<form method="post" action="/sent_message">
            <input type="text" name="message[name]">
            <textarea name="message[content]"></textarea>
            <input type="submit">
</form>

【问题讨论】:

  • 你有bodyParser中间件吗?
  • 我会尝试不带括号看看效果如何
  • @SLaks 那是你的问题。谢谢。

标签: javascript node.js express


【解决方案1】:

您必须包含app.use(express.bodyParser());

【讨论】:

  • bodyParser 不推荐。请改用express.urlencoded()express.json()。如果您需要解析多部分表单数据(即文件上传),您应该使用 Busboy 或 Formidable。
  • @EthanBrown,JSON 或 URL 编码与 POST 请求有什么关系?
  • POST 请求将字段(通常)作为请求的主体传输。该正文以一种称为“URL 编码”的格式编码,这就是 express.urlencoded() 中间件所做的。 (它实际上是 Connect 中间件,但可以通过 Express 获得)。 express.json() 不是很常用,但是一些客户端(尤其是 AJAX 请求)将正文编码为 JSON 格式而不是 URL 编码。
  • express.bodyParser() 仅包括 express.urlencoded()express.json()express.multipart()。不推荐使用的原因是 express.multipart() 已被弃用,并将在下一版本的 Express 中完全删除。幸运的是,Busboy 和 Formidable 非常熟练地处理多部分编码。
猜你喜欢
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 2019-03-19
  • 2012-04-04
  • 2020-03-27
  • 2014-07-19
相关资源
最近更新 更多