我正在使用Node.js的Mongoose,并尝试实现一个中间件,当使用insertMany时调用。
Mongoose文档中没有任何示例,但他们确认insertMany模型函数会触发以下中间件:insertMany()。
我有一个基本的用户架构,并需要使用bcrypt散列密码的insertMany钩子:
UserSchema.pre('insertMany', async function (err, docs, next) {
try{
docs.map(async function (doc, index) {
// async hash password
doc.password = await User.hashPassword(doc.password);
});
} catch (error) {
console.log(error);
}
next();
});
我没有发布所有的模式,因为其他所有功能都已经正常工作,包括密码哈希和“保存”钩子。 当我尝试插入多个用户时,我无法理解为什么会出现以下错误:
next 不是一个函数
通常我调用 next() 来继续执行下一个中间件,但在这种情况下不起作用。 如果我删除 next(),代码将不会继续执行下一个中间件,在两种情况下都无法插入用户。
有人能帮帮我吗?