node.js - 定义的验证错误消息未显示在 Node.js 中

标签 node.js express mongoose mean

我是一个刻薄的学习者。

我已经编写了一个架构并将其保存在 Controller 类中。 在架构中,我像这样定义验证错误消息

var userSchema = new Schema( {
      name: {type: String, required : 'please insert name'}
  });
User = mongoose.model('User', userSchema);

module.exports = {
User : User
};

将其保存在 Controller 类中并打印错误

insertUser.save(function (err,user){
    if(err) {
        console.log(err);
        res.send(err);
    }
    else res.send("inserted user name : " + user.name);
});

但是我发现错误消息

{"message":"Validation failed","name":"ValidationError","errors":{"name":    {"message":"Validator \"required\" failed for path name with value `undefined`","name":"ValidatorError","path":"name","type":"required"}}}

什么改变让我实现了显示正确的验证消息?

最佳答案

var userSchema = new Schema({
   name: { type: String }
});

userSchema.path('name').validate(function (value) {

  return value.length !== 0;

}, 'please insert name');

关于node.js - 定义的验证错误消息未显示在 Node.js 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30972954/

相关文章:

node.js - 如何使用 asdf 在 Visual Studio Code 中使用 NodeJS 调试? (找不到运行时 'node' )

arrays - 如何增加数组mongodb下重复值的计数器

node.js - 如何使用 i18n-node 在模块化 Express 应用程序中划分语言环境文件?

node.js - 使用 Angular 8 在 MongoDB 中保存新条目时出现 header 错误

node.js - 在 node.js 中设置 mssql-session-store

node.js - 为什么我的查询在 mongoose 上需要 13 秒,而在 robomongo 上需要 0.7 秒?

node.js - Mongoose 查询集合不返回结果?

node.js - 如果启用了 Uglify 中的动态扩展,如何使用 Grunt.js 监视任务只对更改的文件进行 uglify?

mongoose - 如何在查找请求中对填充的文档进行排序?

javascript - 如何查明交易是否在 Solana 上完成