小编mut*_*gan的帖子

Nest.js 优雅关闭

我在引导函数中启用了关闭挂钩。我还在我的模块之一订阅了应用程序关闭挂钩:

public async onApplicationShutdown(signal): Promise<void>
{
   console.log({signal});
   ...
}
Run Code Online (Sandbox Code Playgroud)

现在我可以Ctrl+C在终端上按下并阅读一条很棒的消息。然后我的资源释放工作正常。

如果数据库连接失败,我也想关闭我的应用程序:

export class MyDbAccessImplementation {
   constructor() {
      this._pool = createPool(some);
      this._pool.query(`SELECT 'test' AS TEST`, (err) => {
         if (err !== null) {
            console.error(err);
            process.emit('SIGINT');
         }
      });
   }
}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我的 onApplicationShutdown 方法不会因数据库连接错误而触发,并且应用程序会立即关闭。

如何从其组件触发 Nest.js 应用程序关闭?

node.js nestjs

8
推荐指数
1
解决办法
2万
查看次数

fastify中如何组织路由?

请原谅我的这些异端言论,但从开发者体验的角度来看,我认为express是构建api的最佳库。但阻止我在任何地方使用它的是每个人都一直说(并通过基准测试确认)它很慢。

\n\n

我尝试为自己选择一个替代方案,但我无法\xd1\x8dt找到适合我的。

\n\n

例如,使用express我可以简单地组织以下结构:
\nuserAuthMiddleware.js

\n\n
export const userAuthMiddleware = (req, res, next) => {\n    console.log(\'user auth\');\n    next();\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

adminAuthMiddleware.js

\n\n
export const adminAuthMiddleware = (req, res, next) => {\n    console.log(\'admin auth\');\n    next();\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

setUserRoutes.js

\n\n
export const setUserRoutes = (router) => {\n    router.get(\'/news\', (req, res) => res.send([\'news1\', \'news2\']));\n    router.get(\'/news/:id\', (req, res) => res.send(`news${req.params.id}`));\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

setAdminRoutes.js

\n\n
export const setAdminRoutes = (router) => {\n    router.post(\'/news\', (req, res) => res.send(\'created\'));\n    router.put(\'/news/:id\', (req, res) => res.send(\'uodated\'));\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

userApi.js

\n\n
imports...\n\nconst userApi …
Run Code Online (Sandbox Code Playgroud)

middleware routes node.js express fastify

7
推荐指数
1
解决办法
1万
查看次数

如何以正确的方式将@admin-bro/nestjs 与@admin-bro/typeorm 和postgres 一起使用?

admin-bro-nestjs 存储库包含一个全面的示例,其中包含 mongoose 的示例。但我需要将它与 typeorm 和 postgres 一起使用。
我尝试将此示例改编为 typeorm:

// main.ts
import AdminBro from 'admin-bro';
import { Database, Resource } from '@admin-bro/typeorm';
import { NestFactory } from '@nestjs/core';

import { AppModule } from './app.module';

AdminBro.registerAdapter({ Database, Resource });

const bootstrap = async () => {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();
Run Code Online (Sandbox Code Playgroud)

// app.module.ts
import { Module } from '@nestjs/common';
import { AdminModule } from '@admin-bro/nestjs';
import { TypeOrmModule, getRepositoryToken } from '@nestjs/typeorm';
import { Repository …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js typeorm nestjs admin-bro

5
推荐指数
1
解决办法
3116
查看次数