Javascript 后API主体值是否通过未定义?
我正在使用mongoose在MEAN堆栈上构建一个API。API应该处理用户注册和身份验证。为了测试这一点,我使用chrome扩展名postman将post请求提交到Javascript 后API主体值是否通过未定义?,javascript,node.js,rest,authentication,postman,Javascript,Node.js,Rest,Authentication,Postman,我正在使用mongoose在MEAN堆栈上构建一个API。API应该处理用户注册和身份验证。为了测试这一点,我使用chrome扩展名postman将post请求提交到/signup app.use("/signup", bodyParser.urlencoded({ extended: false })); app.post("/signup", Auth.userExist, function (req, res, next) { if (!req.body.
/signup
app.use("/signup", bodyParser.urlencoded({ extended: false }));
app.post("/signup", Auth.userExist, function (req, res, next) {
if (!req.body.email || !req.body.password) {
res.json({success: false, msg: 'Please pass name and password.'});
console.log("email: " + req.body.email);
console.log("password: " + req.body.password);
} else {
//do create new user logic...
res.json({success: true, msg: 'Successful created new user.'});
}
});
在这里,您可以看到我向API发送的请求正文:
在控制台中,我得到以下信息:
TypeError:无法读取未定义的属性“email”
为什么我的请求正文无法通过?尝试为端点配置正文解析器:
var bodyParser = require("body-parser");
app.use("/signup", bodyParser.urlencoded({ extended: false }));
在POSTMAN中,选择
x-www-form-urlencoded
而不是form
,然后传递表单值。您的代码应该可以正常工作。您可以演示如何将用户模型导入控制器吗?@BibekSubedivar User=require('../api/public/User/model/userModel')顶部的代码>是否正在执行保存回调?用户是否保存到数据库中?你试过UserSchema.insert()而不是save()吗?@tronman我不这么认为。尽管如此,我不确定它是否因为密码没有被散列而失败,或者它是否没有被尝试。我只是返回错误,而不是触发pre方法。此外,插入不会产生错误difference@tronman请查看显示错误消息returned.hmmm的更新问题,如果我这样做,我会得到“TypeError:无法读取未定义的属性‘email’”——我只是将app.use直接放在routes类中我的app.post上方,并将require放在顶部。