当前位置: 首页 > 面试题库 >

猫鼬:需要验证错误路径

侯沈义
2023-03-14
问题内容

我试图用mongoose在mongodb中保存一个新文档,但是ValidationError: Path 'email' is required., Path 'passwordHash' is required., Path 'username' is required.即使我提供电子邮件,passwordHash和用户名,我也能得到。

这是用户架构

    var userSchema = new schema({
      _id: Number,
      username: { type: String, required: true, unique: true },
      passwordHash: { type: String, required: true },
      email: { type: String, required: true },
      admin: Boolean,
      createdAt: Date,
      updatedAt: Date,
      accountType: String
    });

这就是我创建和保存用户对象的方式。

    var newUser = new user({

      /* We will set the username, email and password field to null because they will be set later. */
      username: null,
      passwordHash: null,
      email: null,
      admin: false

    }, { _id: false });

    /* Save the new user. */
    newUser.save(function(err) {
    if(err) {
      console.log("Can't create new user: %s", err);

    } else {
     /* We succesfully saved the new user, so let's send back the user id. */

    }
  });

那么为什么猫鼬会返回验证错误,我不能null用作临时值吗?


问题答案:

回应您的最后评论。

您正确的认为null是一个值类型,但是null类型是一种告诉解释器它 没有value的方法
。因此,必须将这些值设置为任何非空值,否则会收到错误消息。在您的情况下,请将这些值设置为空字符串。即

var newUser = new user({

  /* We will set the username, email and password field to null because they will be set later. */
  username: '',
  passwordHash: '',
  email: '',
  admin: false

}, { _id: false });


 类似资料:
  • 问题内容: 我正在从npm 使用此架构: 如果我尝试保存已经存在于db中的电子邮件,则如果省略该字段,我希望得到一个类似的电子邮件。但是事实并非如此,我得到了。 这不是验证错误(即使我删除了unique:true也会发生)。 知道为什么吗? 问题答案: 我更喜欢将其放在路径验证机制中,例如 然后,它将被包装,并在您调用或时作为第一个参数返回。

  • 我正试图决定如何处理猫鼬中的验证错误。 我使用节点验证器定义了自己的验证规则,例如: 这将产生如下错误: 然而,节点验证器提供了自己的错误消息。如果我使用mongoose validator节点模块将节点验证器直接插入到我的模式中,那么我可以直接使用这些错误消息: 这将生成一条错误消息,如下所示: 我也可以在此处提供自定义错误消息: Mongoose允许您根据需要定义字段: 这将生成一条错误消息,

  • 我实际上是在努力做下面的事情:我的服务类 这让我想要的没有被调用,实际上与这个模拟没有任何交互。你知道我做错了什么吗??

  • 问题内容: 我正在使用Restify和Mongoose创建一个API ,而这两个都是我的新手。我似乎无法找出正确的方法来处理Mongoose / Node中的错误。 到目前为止,我正在尝试执行以下操作: 我正在尝试为此调用GET(针对不存在的用户)。而不是发送回简单的错误消息,而是导致整个节点应用程序失败。我对return next(err)的用户以及应该怎么做感到困惑。 任何帮助是极大的赞赏。

  • 问题内容: 如果猫鼬无法连接到数据库,如何设置错误处理的回调? 我知道 但是是否有类似的东西 ? 问题答案: 连接后,您可以在回调中获取错误:

  • 问题内容: 我有重复密钥的问题。很长一段时间找不到答案。请帮助我解决此问题或解释为什么我得到重复的密钥错误。 但是在监视器中,我使用upsert,所以为什么会出现重复错误? monitor.js:62-70 监控架构 指数 并增加财产 utils.js 问题答案: 导致插入文档的ups不是完全原子的操作。将ups视为执行以下离散步骤: 查询标识的文档以进行增补。 如果文档存在,则自动更新现有文档。