POST API体值是否未定义?

时间:2016-03-16 12:10:18

标签: javascript node.js rest authentication postman

我正在使用mongoose在MEAN堆栈上构建API。 API应该处理用户注册和身份验证。为了测试这一点,我使用chrome扩展程序,邮递员向/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请求正文中发送的内容:

Postman

在控制台中,我得到了这个:

  

TypeError:无法读取未定义的属性“email”

为什么我的请求正文无法通过?

2 个答案:

答案 0 :(得分:1)

尝试为您的终端配置身体解析器:

var bodyParser = require("body-parser");

app.use("/signup", bodyParser.urlencoded({ extended: false }));

答案 1 :(得分:1)

POSTMAN 中选择x-www-form-urlencoded而不是form,然后传递表单值。你的代码应该可以正常工作。