我正在尝试使用Postman Application发送帖子,我的Js代码实际上是我将在此处发布的代码,它代表POST。 我的要求是:
{
"username" : "UserAbc",
"password" : "password"
}
错误是我在标题中写的错误。有任何想法吗?谢谢!
app.post('/register', (req, res) => {
const username = req.body.username;
const password = req.body.password;
if (!username || !password) {
res.json({
error: 'Missing required parameters'
});
return;
}
let user = new User({
username: username,
password: password,
})
user.save();
let tokenKey = uuidv1();
let newToken = new Token({
token: tokenKey,
expire: ~~(Date.now() / 1000) + 3600 * 24,
})
newToken.save();
res.status(200).send({ token: tokenKey });
});
答案 0 :(得分:2)
它看起来像在:
const username = req.body.username;
req
不包含body
。
尝试以下代码行,看看您的错误是否消失了。
const username = (req.body || {}).username;
这不是解决方案,而是一种查看是否出问题的方法。如果您的错误变为其他错误,则说明已找到问题。
答案 1 :(得分:1)
答案 2 :(得分:1)
似乎您的POST数据未在服务器上解析。
可能有两个原因。
确保您具有诸如expressjs/body-parser之类的正文解析器。
运行npm install body-parser
之后,然后在代码中,您需要在所有使用req.body
的路由之前将其添加到 :
const bodyParser = require('body-parser');
app.use(bodyParser.json())
如果您已经有一个正文分析器,则在Postman中,没有将body mime-type设置为application/json
,请确保将类型设置为JSON: