Node JS获取请求体长

时间:2016-05-04 05:17:27

标签: node.js

我需要在req.body中获取字段的长度。但是使用req.body.username.length <= 5我收到错误Cannot read property 'length' of undefined。我该怎么办?

3 个答案:

答案 0 :(得分:3)

考虑到对象在 JavaScript 中没有 length 属性。为此,您可以改用此代码。

Object.keys(req.body).length

Object.keys(req.body) 将返回所有键的数组。因此,我们可以简单地使用 .length 获取数组的长度。

答案 1 :(得分:0)

我相信在访问其中的数据之前,您需要使用中间件body-parser来解析正文。

使用以下命令安装它:

npm install body-parser

像这样使用:

var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({extended: true})); // Returns middleware that only parses urlencoded bodies. This parser accepts only UTF-8 encoding of the body and supports automatic inflation of gzip and deflate encodings.

app.use(bodyParser.json()); // Returns middleware that only parses json. This parser accepts any Unicode encoding of the body and supports automatic inflation of gzip and deflate encodings.

NPM参考:https://www.npmjs.com/package/body-parser

答案 2 :(得分:0)

这个问题有两种可能性。

1)req.body未定义。这意味着你无法解析身体。为了克服这个问题,请采取以下步骤。

npm install body-parser --save

在app.js中加入以下行

var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.set('json spaces', 1);

2.我能想到的另一种可能性是如果你的req.body被正确解析但你在req.body中没有名为username的键