node.js - Mongoose 验证未调用

标签 node.js mongodb mongoose

我正在遵循书中的 Mongoose 文档,但我什至无法让最简单的验证器工作。我缺少什么?我假设这个验证器会 100% 失败,但它会 100% 成功,我可以插入任何我想要的用户 ID。在这里,我只是想看看它是否被调用,并且当我期望它失败时插入总是通过。我尝试了在网上看到的许多变体和示例,并且在所有情况下验证器似乎都没有被调用。

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const profileSchema = new Schema({
created: {
    type: Date,
    default: Date.now
    },
userid: { 
    type: Schema.Types.ObjectId, 
    ref: 'user',
    validate: {
        validator: val => { return false; },
        message: 'something'
    }
});
const Profile = mongoose.model('profile',profileSchema);

最佳答案

这是更新期间的已知问题。我没有意识到我正在执行更新的代码结构方式。我有一个名为 findOneAndUpdate() 的“添加”函数。感谢您提出的好问题帮助我找到了问题。

查看答案: Mongoose .update() does not trigger validation checking

关于node.js - Mongoose 验证未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53692758/

相关文章:

mongodb - 按小时分组并计数 MongoDB

mongodb - 用于 mongodb 的 Spring Roo Finder

javascript - Mongodb 查看数组中的所有项目是否存在并更新,否则插入

node.js - 如何在 Sequelize 模型中设置特定列的排序规则?

javascript - 为什么 puppeteer 给我发回手机截图?

mongodb - $addFields where 条件

node.js - mongoose 连接有效,mongo shell 连接失败

javascript - 在 Mongoose 中使用重命名集合

node.js - 请求错误: Connection lost - read ECONNRESET while using SQL Server in nodejs

node.js - 从兆字节/GB 到 Node 中的字节