我试图理解为什么我不能从用户文档访问某些属性。当查询用户文档的数据库时,我想访问它的属性。
我的用户模型:
import mongoose from 'mongoose';
export interface IUser extends mongoose.Document {
email: string;
password: string;
}
const UserSchema = new mongoose.Schema({
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
});
export default mongoose.model<IUser>('User', UserSchema);
查询:
const user = User.findById(payload.sub);
const { email } = user;
这是我得到的打字错误:
Property 'email' does not exist on type 'Query<(IUser & { _id: ObjectId; }) | null, IUser & { _id: ObjectId; }, {}, IUser>'.
我不明白为什么会出现此错误。我似乎也无法访问_id属性。
1条答案
按热度按时间von4xj4u1#
查询数据库是一个异步的过程。Mongoose实际上不会直接返回Promise,而是返回它自己的类来扩展Promise。但是,您仍然可以使用
await
来等待它解析:您还应该检查该用户是否存在,因为如果没有找到这样的用户,此方法也会返回
null
。