NestJS - 带有 GridFS 的猫鼬
NestJS - Mongoose with GridFS
我想 mongoose 与 NestJs 一起使用。我正在使用 @nestjs/mongoose
包,如 documentation 中所述。
当我将它与标准模型一起使用时,它可以正常工作。但我需要使用 GridFS 将文件存储在我的 mongo 数据库中。
如何使用此功能? @nestjs/mongoose
是否可以集成以使用第三方库,例如 mongoose-gridfs
或其他库?
或者应该在我的 NestJs
应用程序中直接使用 mongoose 而没有 @nestjs/mongoose
?
对于那些想要将 mongoose 与其他需要连接的包一起使用的人,您不应该使用 @nestjs/module
。
这是使用标准猫鼬库的示例:https://github.com/nestjs/nest/tree/master/sample/14-mongoose-base
我使用了 nestjs/mongoose 包中的 @InjectConnection() 装饰器来实现此功能:
export class AttachmentsService {
private readonly attachmentGridFsRepository: any; // This is used to access the binary data in the files
private readonly attachmentRepository: Model<AttachmentDocument>; // This is used to access file metadata
constructor(@InjectConnection() private readonly mongooseConnection: Mongoose,
@Inject(Modules.Logger) private readonly logger: Logger) {
this.attachmentGridFsRepository = gridfs({
collection: 'attachments',
model: Schemas.Attachment,
mongooseConnection: this.mongooseConnection,
});
this.attachmentRepository = this.attachmentGridFsRepository.model;
}
我的连接是在 app.tsx 中使用 Mongoose.forRootAsync() 实例化的。
我想 mongoose 与 NestJs 一起使用。我正在使用 @nestjs/mongoose
包,如 documentation 中所述。
当我将它与标准模型一起使用时,它可以正常工作。但我需要使用 GridFS 将文件存储在我的 mongo 数据库中。
如何使用此功能? @nestjs/mongoose
是否可以集成以使用第三方库,例如 mongoose-gridfs
或其他库?
或者应该在我的 NestJs
应用程序中直接使用 mongoose 而没有 @nestjs/mongoose
?
对于那些想要将 mongoose 与其他需要连接的包一起使用的人,您不应该使用 @nestjs/module
。
这是使用标准猫鼬库的示例:https://github.com/nestjs/nest/tree/master/sample/14-mongoose-base
我使用了 nestjs/mongoose 包中的 @InjectConnection() 装饰器来实现此功能:
export class AttachmentsService {
private readonly attachmentGridFsRepository: any; // This is used to access the binary data in the files
private readonly attachmentRepository: Model<AttachmentDocument>; // This is used to access file metadata
constructor(@InjectConnection() private readonly mongooseConnection: Mongoose,
@Inject(Modules.Logger) private readonly logger: Logger) {
this.attachmentGridFsRepository = gridfs({
collection: 'attachments',
model: Schemas.Attachment,
mongooseConnection: this.mongooseConnection,
});
this.attachmentRepository = this.attachmentGridFsRepository.model;
}
我的连接是在 app.tsx 中使用 Mongoose.forRootAsync() 实例化的。