【发布时间】:2021-01-09 17:48:57
【问题描述】:
我正在使用带有 nodeJs 的猫鼬,并且我正在尝试实现一个在使用 insertMany 时调用的中间件。 在猫鼬文档中根本没有示例,但他们确认 insertMany 模型功能 触发以下中间件:insertMany()。
我有一个基本的用户架构,我需要 insertMany 挂钩来使用 bcrypt 散列密码:
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(),代码将不会继续到下一个中间件,并且在这两种情况下都不会插入用户。
有人可以帮我吗?
【问题讨论】: