如何使用 nestjs 实现 mongoose 插件?
import * as mongoose from 'mongoose';
import uniqueValidator from 'mongoose-unique-validator';
import mongoosePaginate from 'mongoose-paginate';
import mongoose_delete from 'mongoose-delete';
const UsuarioSchema = new mongoose.Schema({
username: {
type: String,
unique: true,
required: [true, 'El nombre de usuario es requerido']
},
password: {
type: String,
required: [true, 'La clave es requerida'],
select: false
}
});
UsuarioSchema.plugin(uniqueValidator, { message: '{PATH} debe ser único' });
UsuarioSchema.plugin(mongoosePaginate);
UsuarioSchema.plugin(mongoose_delete, { deletedAt : true, deletedBy : true, overrideMethods: true });
错误:schema.plugin()
的第一个参数必须是一个函数,得到“未定义”
最佳答案
这是给那些正在使用 mongoose-paginate 的人的片段带有 nestjs 的插件。您还可以安装 @types/mongoose-paginate获得打字支持
- 将分页插件添加到模式的代码:
import { Schema } from 'mongoose';
import * as mongoosePaginate from 'mongoose-paginate';
export const MessageSchema = new Schema({
// Your schema definitions here
});
// Register plugin with the schema
MessageSchema.plugin(mongoosePaginate);
- 现在在Message接口(interface)文档中
export interface Message extends Document {
// Your schema fields here
}
- 现在您可以像这样轻松地在服务类中获取分页方法
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { PaginateModel } from 'mongoose';
import { Message } from './interfaces/message.interface';
@Injectable()
export class MessagesService {
constructor(
// The 'PaginateModel' will provide the necessary pagination methods
@InjectModel('Message') private readonly messageModel: PaginateModel<Message>,
) {}
/**
* Find all messages in a channel
*
* @param {string} channelId
* @param {number} [page=1]
* @param {number} [limit=10]
* @returns
* @memberof MessagesService
*/
async findAllByChannelIdPaginated(channelId: string, page: number = 1, limit: number = 10) {
const options = {
populate: [
// Your foreign key fields to populate
],
page: Number(page),
limit: Number(limit),
};
// Get the data from database
return await this.messageModel.paginate({ channel: channelId }, options);
}
}
关于node.js - Mongoose 插件 nestjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49387454/