我正在用mongoose做用户模型。创建了一些接口来使用模型方法和静态数据,就像在documentation中一样。
export interface IUser extends Document {
email: string;
password: string;
role: 'user' | 'admin';
firstname: string;
lastname: string;
age: number;
date: Date;
verified: boolean;
}
interface IUserMethods { // no methods now, interface for future
}
interface UserModel extends Model<IUser, {}, IUserMethods> {
emailTaken(email: string): Promise<HydratedDocument<IUser, IUserMethods>>;
}
字符串
然后使用所有接口创建模式
const userSchema = new Schema<IUser, UserModel, IUserMethods>({...});
型
然后我尝试使用pre-save hook来散列密码,我得到了这个错误:
1x个月
userSchema.pre('save', async function (next: NextFunction) {
const user = this;
if (user.isModified('password')) {
const salt = await bcrypt.genSalt(10);
const hash = await bcrypt.hash(user.password, salt);
}
next();
});
型
我试过.pre<IUser>
和.pre<HydratedDocument<IUser>>
和.pre<HydratedDocument<IUser, IUserMethods>>
,但没有一个工作。
1条答案
按热度按时间ryevplcw1#
Try Like This为我工作
字符串
这是Monoose的正确Next FunctionType,您一直使用的是Express Next Function Type
请试着让我知道它是否有效
谢谢