介绍
在前端开发中,Nest JS 是一种流行的框架,Nest JS 允许我们使用 TypeScript 和一些其他 Node.js 工具来构建高效并且可伸缩性的应用程序。@nestjs/platform-express 是 Nest JS 的一个重要模块,它提供了一系列的功能,可以帮助我们快速构建高效的应用程序。
安装
在使用@nestjs/platform-express之前,我们需要确保已经安装了Node.js和NPM,在终端中输入以下命令以安装@nestjs/platform-express:
npm install --save @nestjs/platform-express
用法
启用静态文件服务
@nestjs/platform-express中提供的StaticFileServer会提供静态文件服务。我们可以使用@nestjs/common库中的NestFactory来创建一个app实例,然后我们可以把这个实例传给StaticFileServer实例,从而启动静态文件服务,如下所示:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------- ------ - --------- - ---- --------------- ------ - -- ------- ---- ---------- ------ - ---- - ---- ------- ------ - ---------------------- - ---- --------------------------- ----- -------- ----------- - ----- --- - ----- ------------------------------------------------------ ----- ------- - - ----- --------------- ----- ---------- -- ----------------------------------- ----- ---------- --------- ----- ----------------- - ------------
在这个例子中,我们把静态文件目录设置为项目目录下的public文件夹,我们可以查看public文件夹中的文件,如index.html,这样我们就启动了一个静态文件服务。
使用模板引擎
在@nestjs/platform-express中提供了一系列辅助工具,我们可以使用这些工具来使用模板引擎。在一个典型的使用场景中,我们需要设置模板引擎,然后在模板中填充数据并渲染模板,如下所示:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------- ------ - --------- - ---- --------------- ------ - -- ------- ---- ---------- ------ - ---- - ---- ------- ------ - ---------------------- - ---- --------------------------- ------ - -- ------ ---- --------------------- ----- -------- ----------- - ----- --- - ----- ------------------------------------------------------ ----------------------------------- ----- ---------- ------------------ -------- -------- ------ ---- ------------------------- ----- ----------------- - ------------
在这个例子中,我们把视图文件目录设置为项目目录下的views文件夹,告诉Express使用.handlebars文件拓展名来识别视图引擎,并赋值了一个渲染视图的函数,这意味着我们可以在一个视图中使用变量,并使用这个函数在运行时填充它,如下所示:
-- -------------------- ---- ------- ----- --------- ---- --------- ----- ------ ------ ----- ---------------- --------- ----------- ------- ------ ------------------ ---------- -- -- ---- -------- ------- -------
当我们在路由处理函数中返回一个包含数据的对象时,Nest会自动使用这个对象通过Express发送视图,并渲染模板:
-- -------------------- ---- ------- ------ - ----------- --- - ---- ----------------- ------------- ------ ----- ------------- - ------ ------ - ------ - ------ --- ---- -- - -
我们可以访问http://localhost:3000来查看效果。
路由
Nest中有两个装饰器可以用来创建路由:@Controller和@Get、@Post、@Put、@Delete等。我们可以在一个Controller中创建多个路由,并将路由处理函数放到这个Controller中。例如,我们可以创建一个Home Controller,并且在这个Controller中创建一个路由:
-- -------------------- ---- ------- ------ - ----------- --- - ---- ----------------- ------------- ------ ----- -------------- - ------ ------- - ------ - -------- -------- -- ------ -- - -
在这个例子中,我们使用@Controller装饰器和@Get装饰器来创建一个Home Controller,并将路由处理函数放到这个Controller中。
中间件
我们可以使用Nest中提供的中间件来修改请求和响应。Nest中的中间件和Node.js中的中间件非常相像。下面是一个在每次请求时记录请求头的中间件例子:
-- -------------------- ---- ------- ------ - ----------- -------------- - ---- ----------------- ------ - -------- --------- ------------ - ---- ---------- ------------- ------ ----- ---------------- ---------- -------------- - -------- -------- ---- --------- ----- ------------- - ------------------------- ------- - -
在这个例子中,我们定义了一个LoggerMiddleware,它会在每次请求时记录请求头。我们可以将LoggerMiddleware添加到app实例中:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------- ------ - --------- - ---- --------------- ------ - -- ------- ---- ---------- ------ - ---- - ---- ------- ------ - ---------------------- - ---- --------------------------- ------ - -- ------ ---- --------------------- ------ - ---------------- - ---- ---------------------- ----- -------- ----------- - ----- --- - ----- ------------------------------------------------------ ----------------------------------- ----- ---------- ------------------ -------- -------- ------ ---- ------------------------- ----------- -------------------- ----- ----------------- - ------------
在这个例子中,我们把LoggerMiddleware添加到了app实例中,可以在每次请求时调用LoggerMiddleware。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/nestjs-platform-express