无法读取属性';用户名';未定义JavaScript的定义
我正在尝试使用Postman应用程序发送帖子,我的Js代码实际上就是我将在这里发布的代码,它代表了帖子。 我的要求是:无法读取属性';用户名';未定义JavaScript的定义,javascript,amazon-web-services,server,request,postman,Javascript,Amazon Web Services,Server,Request,Postman,我正在尝试使用Postman应用程序发送帖子,我的Js代码实际上就是我将在这里发布的代码,它代表了帖子。 我的要求是: { "username" : "UserAbc", "password" : "password" } 这个错误是我在标题中写的。有什么想法吗?谢谢 app.post('/register', (req, res) => { const username = req.body.username; const passw
{
"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 });
});
它看起来像:
const username=req.body.username代码>
req
不包含正文
试试这行代码,看看你的错误是否消失了。
const username=(req.body | |{})代码>
这不是一个解决方案,而是一种查看这是否是问题的方法。如果您的错误变成了其他问题,您已经发现了问题。基于此错误,您似乎没有使用主体解析中间件,您必须执行以下操作:
app.use(express.json());
以便在请求对象上设置body
属性
服务器上似乎没有解析您的帖子数据
这可能有几个原因
确保您有一个主体解析器,例如
运行npm install body parser
后,在代码中,您需要在使用req.body
的任何路由之前添加以下内容:
constbodyparser=require('body-parser');
app.use(bodyParser.json())
如果您已经有body解析器,那么在Postman中body mime类型没有设置为application/json
,请确保将类型设置为json:
在post方法中,上面的const username…
addconsole.log(req)
然后打开broswer控制台并刷新页面。看看req
实际上是什么,因为我怀疑这不是你所期望的。谢谢!现在我收到:{“error”:“缺少必需的参数”}。我认为我的Json格式现在是个问题。非常感谢!