POST时验证器erorr。创建RESTful API

时间:2017-11-02 05:07:34

标签: node.js mongodb rest

我正在为任务管理实现API,并且有两个端点用户和任务。 “用户”的架构设计如下:

var userSchema = new mongoose.Schema({
    name: { 
        type:String,
        required: true
    },

    email: {
        type: String,
        required: true,
        unique: true
    },

    pendingTasks: [String],

    dateCreated: { 
        type: Date, 
        default: Date.now }
});

我的POST看起来像

router.post('/', function(req, res){
    var userPost = {
        name: req.body.name,
        email: req.body.email
    }
    user.create(userPost, function(err, users){
        if(err) {
            res.status(500).send({
                message:err,
                data: []
            });
        } else {
            res.status(201).send({
                message: 'OK',
                data: users
            });
        }
    });
});

当我尝试使用虚拟数据测试邮递员的POST时

enter image description here

我收到“ValidatorError”并且它给我一条消息“用户验证失败:电子邮件:路径'电子邮件'是必需的,名称:路径:'名称'是必需的。

enter image description here

这看起来很奇怪,因为我刚刚传递了虚拟数据'name'和'email'。

我是创建RESTful API的新手,所以我可能犯了一个愚蠢的错误,但我真的不明白。

1 个答案:

答案 0 :(得分:2)

我还在本地PC上部署了一个应用并调试,如果您选择原始作为您的正文类型,则电子邮件属性将不会存在于 req.body 对象。

要在Postman中解决此问题,您必须选择 x-www-form-urlencoded 并输入您的数据作为键值对: enter image description here