使用mongodb by typeorm和nestjs -创建crud rest
当试图通过获取数据时,findone()使用'id‘。降至误差以下
TS2345:类型'{ id: string;}‘的参数不能分配给'FindOneOptions’类型的参数。 对象文字只能指定已知的属性,并且'id‘在'FindOneOptions’类型中不存在。
代码:
const result = await this.sellerRepository.findOne({ id });
实体
@Entity('seller')
export class Seller {
@ObjectIdColumn()
id: ObjectID;
@Column({
type: 'string',
nullable: false,
name: 'product_name',
})
productName: string;
@Column({
name: 'short_desc',
})
}
async findOne(id: string): Promise<Seller> {
const result = await this.sellerRepository.findOne({ id });
return result;
}
发布于 2022-07-01 07:47:07
这是我的解决方案。
我用了new ObjectID(id)
和import { ObjectID } from 'mongodb';
如果遇到类似于TS7016的错误,则无法找到模块'mongodb'的声明文件
然后按照下面的步骤
declare module 'mongodb'
;index.d.ts
文件中添加tsconfig.json
文件中的typeRoots
路径,如下所示"typeRoots": [ "./typings", "./node_modules/@types/" ]
样本代码
import { ObjectID } from 'mongodb';
async findOne(id: string): Promise<Seller> {
const result = await this.sellerRepository.findOne(new ObjectID(id));
return result;
}
发布于 2022-06-30 18:16:17
你应该使用findOneBy
findOne(id: number): Promise<User> {
return this.usersRepository.findOneBy({ id: id });
}
https://stackoverflow.com/questions/72810663
复制相似问题