【发布时间】:2019-12-17 12:00:40
【问题描述】:
我已经使用这段代码定义了一个模式方法。虽然我在服务中使用。它显示错误。
// 型号
export interface User extends mongoose.Document {
name: {
type: String,
required: [true, 'Please tell us your name.']
},
username: {
type: String,
required: [true, 'Please select a username.']
},
email: {
type: String,
required: [true, 'Please provide us your email.'],
lowercase: true,
unique: true,
validate: [validator.isEmail, 'Please provide us your email.']
},
password: {
type: String,
required: [true, 'Please select a password.'],
minLength: 8
select: false
},
passwordConfirmation: {
type: String,
required: [true, 'Please re-enter your password.'],
minLength: 8,
},
comparePassword(password: string): boolean
}
// 方法声明
userSchema.method('comparePassword', function (password: string): boolean {
if (bcrypt.compareSync(password, this.password)) {
return true;
} else {
return false;
}
});
//服务文件
public loginUser = async(req: Request, res: Response, next) => {
const {username, password} = req.body;
if(!username || !password){
res.status(400).json({
status: 'failed',
message: 'Please provide username and password.'
});
return next(new AppError('Please provide username and password.', 400));
} else {
const person = await [![User][1]][1].comparePassword(password);
const token = signToken(person._id);
res.status(200).json({
status: 'success',
accessToken : token
});
}
}
这一行显示了错误。
const person = await User.comparePassword(password);
这是编辑器中的截图。
这是终端截图
我能知道这里有什么问题吗?我尝试查看解决方案,但找不到。
【问题讨论】:
标签: node.js mongodb typescript mongoose