使用mongoose模式进行服务器验证

时间:2014-08-14 11:52:26

标签: node.js rest mongoose

我们假设你在mongoose中设置了这个架构:

var personSchema = new Schema({
  name: String,
  address:{
    city: String,
    postalCode: Number
  }

});

你有这篇文章:

// /api/person

exports.newPerson = function(req, res){
var person = JSON.parse(person);
//Validation code here
mognoose.model('person').create(person

res.send(200)

}

检查帖子中是否提供了所有密钥的最佳方法是什么?如果遗漏了任何内容,我希望发出400错误消息,例如:'提供的数据不足,请检查文档。'或类似的东西。

你可以这样做:

if(!person.name || !person.address ..){

  res.send(404, {message: 'Not sufficient data'})
  return;
}

但这是最好的方法吗?如果你有一个包含30个键的模式怎么办?有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

var personModel = new mongoose.model('person');
personModel.set(person); // just set temp person object
personModel.save(function (err, saved) {
    if (err) {
        // your 400 error
        return;
    }
    // saved = person with mongoDb fields seted (_id, __v, ...)
});