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