我目前正在使用Mongoose和NestJs,我在访问createdAt属性时遇到了一些困难。
这是我的user.schema.ts
@Schema({ timestamps: true})
export class User {
@Prop({ required: true })
name!: string;
@Prop({ required: true })
email!: string;
}
export const UserSchema = SchemaFactory.createForClass(User);
在我的user.service.ts中
public async getUser(
id: string,
): Promise<User> {
const user = await this.userModel.findOne({ id });
if (!user) {
throw new NotFoundException();
}
console.log(user.createdAt) // Property 'createdAt' does not exist on type 'User' .ts(2339)
}
所以基本上我已经将时间戳设置为true,但我仍然无法访问createdAt属性。顺便说一下,我还有一个自定义id,它工作正常,所以请在我的服务中忽略它。ts
我已经尝试将@Prop() createdAt?: Date
设置为模式,但仍然不起作用。
我还使用MongoMemoryServer和Jest测试了这个模式,结果显示它返回createdAt。
任何帮助,为什么我不能访问createdAt属性将不胜感激!
2条答案
按热度按时间093gszye1#
我用这个做了测试:
然后,我在我的模型/实体中添加了2个字段(createdAt,updatedAt),以在NestJS的控制器/解析器中公开。
最后一个例子:
现在,我的新字段createdAt、updatedAt可用:
sauutmhj2#
我测试了你的代码,添加
@Prop() createdAt?: Date
应该可以访问createdAt
。我从您的代码中发现的唯一不能访问createdAt的地方是您传递给查询的
id
。下面是我使用你的代码进行测试的截图: