Nodejs Nestjs Express平台支持插件@nestjs/platform-express的使用

Nodejs Nestjs Express平台支持插件@nestjs/platform-express的使用
在NestJS中,[@nestjs](/user/nestjs)/platform-express插件用于提供Express的功能,使得你可以利用Express的强大功能来扩展你的NestJS应用。下面是一个简单的示例,展示如何在NestJS项目中设置和使用[@nestjs](/user/nestjs)/platform-express

1. 安装依赖

首先确保你已经安装了[@nestjs](/user/nestjs)/platform-express

npm install [@nestjs](/user/nestjs)/platform-express

如果你的应用需要处理静态文件或使用模板引擎(如EJS),可能还需要安装额外的依赖:

npm install express ejs

2. 创建一个基本的NestJS应用

如果你还没有创建NestJS应用,可以使用Nest CLI来创建一个新的项目:

npm i -g [@nestjs](/user/nestjs)/cli
nest new my-nest-app
cd my-nest-app

3. 使用[@nestjs](/user/nestjs)/platform-express

接下来,在你的模块中导入[@nestjs](/user/nestjs)/platform-express并配置Express中间件。这里我们以根模块AppModule为例:

import { Module, NestModule, MiddlewareConsumer } from '[@nestjs](/user/nestjs)/common';
import { NestFactory } from '[@nestjs](/user/nestjs)/core';
import { ExpressAdapter } from '[@nestjs](/user/nestjs)/platform-express';

@Module({
  // 这里添加你的控制器、服务等
})
export class AppModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply((req, res, next) => {
        console.log('Request received');
        next();
      })
      .forRoutes('*'); // 应用到所有路由
  }
}

async function bootstrap() {
  const app = await NestFactory.create(AppModule, new ExpressAdapter());
  
  // 设置模板引擎
  app.setBaseViewsDir('src/views');
  app.setViewEngine('ejs');

  // 提供静态文件
  app.useStaticAssets('public');

  await app.listen(3000);
}
bootstrap();

4. 配置视图引擎和静态文件

在上面的例子中,我们设置了EJS作为视图引擎,并且将public目录设为静态文件夹。这样,任何位于public目录下的文件都可以通过HTTP访问。

5. 创建视图

确保在src/views目录下创建一个EJS文件,例如index.ejs

<!DOCTYPE html>
<html>
<head>
  <title>NestJS with Express</title>
</head>
<body>
  <h1>Hello, NestJS!</h1>
</body>
</html>

6. 创建一个简单的控制器

最后,创建一个简单的控制器来渲染这个视图:

import { Controller, Get } from '[@nestjs](/user/nestjs)/common';

@Controller()
export class AppController {
  @Get()
  getRootRoute() {
    return 'Hello World!';
  }

  @Get('home')
  getHomeRoute() {
    return { message: 'Welcome to the home page!' };
  }
}

7. 运行应用

现在你可以运行你的NestJS应用了:

npm run start

打开浏览器访问http://localhost:3000/home,你应该能看到你定义的HTML内容。

以上就是如何在NestJS中使用[@nestjs](/user/nestjs)/platform-express的基本步骤。你可以根据需要进一步探索和定制你的Express中间件和视图逻辑。


3 回复

当然,没问题!在NestJS的世界里,@nestjs/platform-express就像是给你的蛋糕加上了彩虹糖。它其实是专门为NestJS提供Express框架集成的一个插件。换句话说,就是让你的NestJS应用能够享受到Express的灵活和强大。

使用起来超级简单,只需要安装这个包(如果你还没有安装的话):

npm install @nestjs/platform-express

然后,在你的模块文件中导入ExpressModule,就可以开始构建你的路由、中间件等,就像在Express中一样。只不过现在,你有了NestJS这个更高级的工具箱来帮助你构建更加模块化、可测试的应用!

是不是感觉像是拿到了游戏中的隐藏道具?从此,打造高性能的Web应用不再是梦!


在NestJS中,@nestjs/platform-express插件是用于集成Express框架的一个模块。它允许你在NestJS应用中利用Express的功能,比如中间件、路由等。以下是如何在NestJS项目中启用和使用@nestjs/platform-express的步骤。

1. 创建NestJS项目

如果你还没有创建NestJS项目,可以通过Nest CLI来创建:

npm i -g @nestjs/cli
nest new my-nest-app
cd my-nest-app

2. 安装依赖

确保你的项目中已经安装了@nestjs/platform-express

npm install @nestjs/platform-express

3. 使用Express中间件

在NestJS应用中使用Express中间件,你需要创建一个模块(Module)并在该模块的配置函数(configure)中添加Express中间件。

import { Module } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { ExpressAdapter } from '@nestjs/platform-express';
import * as express from 'express';

@Module({
  imports: [],
  controllers: [],
  providers: [],
})
export class AppModule {
  configure(consumer: import('@nestjs/common').MiddlewareConsumer) {
    consumer.apply(express.static('public')).forRoutes('/');
  }
}

4. 创建并启动应用

在主文件(通常是main.ts)中,使用NestFactory.create()方法创建一个基于Express的应用实例,并传递AppModule作为参数。

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule, new ExpressAdapter());
  await app.listen(3000);
}
bootstrap();

以上就是在NestJS项目中使用@nestjs/platform-express的基本示例。你可以通过这种方式将Express的功能集成到你的NestJS应用中,比如使用Express的中间件或路由功能。

@nestjs/platform-express 是 NestJS 框架中用于集成 Express.js 的模块。它允许你在 NestJS 应用程序中利用 Express 的特性和中间件。通过导入 NestExpressApplication 类型和 ExpressAdapter,你可以配置和扩展你的应用程序以支持各种 Express 功能,如路由、中间件和视图引擎。使用时,在你的主应用模块(通常是 AppModule)中引入并配置 @nestjs/platform-express 模块即可。

回到顶部