@bull-board/nestjs (英语)
网点JS 页:1 bull-board。 。 。 .

安装
安装@bull-board/ api 和此模块 .
$ npm install --save @bull-board/nestjs @bull-board/api
根据您在 NestJS 中使用的内容安装快递或快递适配器( 默认为快递)
$ npm install --save @bull-board/express
//or
$ npm install --save @bull-board/fastify
注册根模块
一旦安装完成,我们可以导入 BullBoardModule 输入您的根模块, 例如 . AppModule。 。 。 .
import { Module } from '@nestjs/common';
import { BullBoardModule } from "@bull-board/nestjs";
import { ExpressAdapter } from "@bull-board/express";
@Module({
imports: [
BullModule.forRoot({
// your bull module config here.
}),
BullBoardModule.forRoot({
route: '/queues',
adapter: ExpressAdapter // Or FastifyAdapter from `@bull-board/fastify`
}),
],
})
export class AppModule {
}
这个 forRoot() 方法对公牛板实例进行注册,并允许您向实例和模块传递多个选项.
现有备选方案如下.
route牛板实例适配器的基线.adapter拟使用的路由适配器,由公牛板提供快取适配器或快取适配器.boardOptions由牛板包提供的选项,例如uiBasePath财务报告和审定财务报表uiConfigmiddleware用于快取适配器的可选中间软件(例如基本认证)
快取验证
为快车安装 express-basic-auth数字 :
$ npm install --save express-basic-auth
修改 BullBoardModule.forRoot() 方法 :
import basicAuth from "express-basic-auth";
BullBoardModule.forRoot({
route: "/queues",
adapter: ExpressAdapter,
middleware: basicAuth({
challenge: true,
users: { admin: "passwordhere" },
}),
}),
快速验证
为快取, 您可以使用 fastify-basic-auth数字 :
$ npm install --save fastify-basic-auth
然后使用中间软件应用 :
import fastifyBasicAuth from "fastify-basic-auth";
BullBoardModule.forRoot({
route: "/queues",
adapter: FastifyAdapter,
middleware: (req, res, next) => {
fastifyBasicAuth({
validate: async (username, password, req, reply) => {
if (username === "admin" && password === "passwordhere") {
return;
}
throw new Error("Unauthorized");
},
})(req, res, next);
},
}),
注册您的队列
要注册新队列, 您需要注册 BullBoardModule.forFeature 在与您的队列注册位置相同的模块中.
import { Module } from '@nestjs/common';
import { BullBoardModule } from "@bull-board/nestjs";
import { BullMQAdapter } from "@bull-board/api/bullMQAdapter";
import { BullModule } from "@nestjs/bullmq";
@Module({
imports: [
BullModule.registerQueue(
{
name: 'my_awesome_queue'
}
),
BullBoardModule.forFeature({
name: 'my_awesome_queue',
adapter: BullMQAdapter, //or use BullAdapter if you're using bull instead of bullMQ
}),
],
})
export class FeatureModule {}
这个 forFeature 方法将给定的队列登记到公牛板实例.
现有备选方案如下.
name从 Nest DI 容器中解析的队列名称.queue要直接注册的队列实例, 而不是通过name。 。 。 .adapter无论是BullAdapter或者说BullMQAdapter取决于您使用的软件包.options队列适配器选项, 如在牛板包中找到的, 例如readOnlyMode, (中文(简体) ),description包括:.
提供其中之一 name 或者说 queue。 。 。 .
直接注册队列实例
@nestjs/bullmq 从队列生成 DI 令牌 name 仅仅,忽略
prefix。两个队列共享一个名称但使用不同的前缀,因此会崩溃到一个
单一 DI 代号,和 a name-基于搜索不能把他们分开 通过队列实例
直接通过 queue 将它们登记为单独的董事会条目:
@Module({
imports: [
BullBoardModule.forFeature(
{ queue: emailsTenantA, adapter: BullMQAdapter, options: { prefix: 'tenant-a:' } },
{ queue: emailsTenantB, adapter: BullMQAdapter, options: { prefix: 'tenant-b:' } },
),
],
})
export class FeatureModule {}
在您的控制器和/或服务中使用公牛板实例 .
创建的公牛板实例可通过 @InjectBullBoard() 装饰师.
例如,在控制器中:
import { Controller, Get } from "@nestjs/common";
import { BullBoardInstance, InjectBullBoard } from "@bull-board/nestjs";
@Controller('my-feature')
export class FeatureController {
constructor(
@InjectBullBoard() private readonly boardInstance: BullBoardInstance
) {
}
//controller methods
}
用法实例
要了解更多情况 访问主 读取