Javascript 后API主体值是否通过未定义?

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.

我正在使用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.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
,然后传递表单值。您的代码应该可以正常工作。

您可以演示如何将用户模型导入控制器吗?@BibekSubedi
var User=require('../api/public/User/model/userModel')是否正在执行保存回调?用户是否保存到数据库中?你试过UserSchema.insert()而不是save()吗?@tronman我不这么认为。尽管如此,我不确定它是否因为密码没有被散列而失败,或者它是否没有被尝试。我只是返回错误,而不是触发pre方法。此外,插入不会产生错误difference@tronman请查看显示错误消息returned.hmmm的更新问题,如果我这样做,我会得到“TypeError:无法读取未定义的属性‘email’”——我只是将app.use直接放在routes类中我的app.post上方,并将require放在顶部。