无法访问 POST 数据 [重复]

Posted

技术标签:

【中文标题】无法访问 POST 数据 [重复]【英文标题】:Cannot access POST data [duplicate] 【发布时间】: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 那是你的问题。谢谢。 【参考方案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 非常熟练地处理多部分编码。

以上是关于无法访问 POST 数据 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

php模拟post方式访问网页,显示盗用页面无法访问

无法从 Java ResultSet 访问数据 [重复]

在POST请求结束之前无法访问最近保存的数据 - node.js

我无法显示来自 mysql 数据库的数据,而是告诉我访问被拒绝 [重复]

event.params 评估为未定义;无法使用 Cloud Functions 访问 Firebase 实时数据库中的 event.params.post

无法访问 php $_POST 值