随着 Deno 的推出,越来越多的开发者开始转向 Deno 进行 Web 应用开发。而 NestJS 作为一个流行的 Node.js 框架,也在 Deno 中得到了广泛的应用。
本文将介绍如何在 Deno 中使用 NestJS 进行 Web 应用开发,包括安装 Deno、安装 NestJS、创建一个简单的 Web 应用以及如何在应用中使用 NestJS 的常用特性。
安装 Deno
Deno 是一个新的 JavaScript 和 TypeScript 运行时,它旨在提供一个更安全的环境,同时也更加现代化。安装 Deno 非常简单,只需要在你的终端中运行以下命令即可:
$ curl -fsSL https://deno.land/x/install/install.sh | sh
安装完成后,你可以通过以下命令验证 Deno 是否已经成功安装:
$ deno --version
如果你看到了类似于 deno 1.8.2
的输出,那么恭喜你,你已经成功安装了 Deno!
安装 NestJS
安装 NestJS 也非常简单,只需要运行以下命令即可:
$ deno install --allow-read --allow-net --unstable https://deno.land/x/nest/install/cli.ts
安装完成后,你可以通过以下命令验证 NestJS 是否已经成功安装:
$ nest --version
如果你看到了类似于 Nest CLI version: 7.5.5
的输出,那么恭喜你,你已经成功安装了 NestJS!
创建一个简单的 Web 应用
接下来,我们将创建一个简单的 Web 应用,以演示如何在 Deno 中使用 NestJS 进行 Web 应用开发。
首先,我们需要创建一个新的 NestJS 应用。在你的终端中运行以下命令:
$ nest new my-app
这将创建一个名为 my-app
的新的 NestJS 应用。接下来,我们需要进入该应用的根目录:
$ cd my-app
现在,我们可以使用以下命令来启动该应用:
$ deno run --allow-net --allow-env --allow-read --unstable server.ts
这将启动一个 HTTP 服务器,监听端口号为 3000。现在,你可以在浏览器中访问 http://localhost:3000
,看到一个欢迎页面。
如何在应用中使用 NestJS 的常用特性
现在,我们已经成功创建了一个简单的 NestJS 应用。接下来,我们将介绍如何在应用中使用 NestJS 的常用特性。
控制器
控制器是 NestJS 应用中的核心组件之一。它们负责处理 HTTP 请求,并返回响应。在 NestJS 中,你可以使用装饰器来定义控制器,如下所示:
-- -------------------- ---- ------- ------ - ----------- --- - ---- ----------------- ------------- ------ ----- ------------- - ------ ----------- ------ - ------ ------ -------- - -
在上面的代码中,我们定义了一个名为 AppController
的控制器,并使用 @Get()
装饰器来指定该控制器处理 HTTP GET 请求。getHello()
方法是控制器的一个操作,它返回一个字符串。
模块
模块是 NestJS 应用中的另一个核心组件。它们负责组织应用中的不同部分,并提供依赖注入。在 NestJS 中,你可以使用装饰器来定义模块,如下所示:
import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; @Module({ controllers: [AppController], }) export class AppModule {}
在上面的代码中,我们定义了一个名为 AppModule
的模块,并将 AppController
控制器添加到了 controllers
属性中。
服务
服务是 NestJS 应用中的另一个重要组件。它们负责处理应用中的业务逻辑,并与数据源交互。在 NestJS 中,你可以使用装饰器来定义服务,如下所示:
import { Injectable } from '@nestjs/common'; @Injectable() export class AppService { getHello(): string { return 'Hello World!'; } }
在上面的代码中,我们定义了一个名为 AppService
的服务,并使用 @Injectable()
装饰器来指定该类可以被依赖注入。getHello()
方法是服务的一个操作,它返回一个字符串。
依赖注入
依赖注入是 NestJS 应用中的一个重要概念。它允许你将一个对象的依赖项注入到另一个对象中。在 NestJS 中,你可以使用构造函数来实现依赖注入,如下所示:
-- -------------------- ---- ------- ------ - ----------- --- - ---- ----------------- ------ - ---------- - ---- ---------------- ------------- ------ ----- ------------- - ------------------- -------- ----------- ----------- -- ------ ----------- ------ - ------ --------------------------- - -
在上面的代码中,我们将 AppService
服务注入到了 AppController
控制器中,并在 getHello()
方法中使用了该服务。
中间件
中间件是 NestJS 应用中的另一个重要组件。它们负责处理 HTTP 请求和响应,并对它们进行一些处理。在 NestJS 中,你可以使用中间件来实现各种功能,如身份验证、日志记录等。
-- -------------------- ---- ------- ------ - ------------------- ------- ---------- - ---- ----------------- ------ - ------------- - ---- ------------------- ------ - ---------- - ---- ---------------- ------ -------- ----------- ---- ---- ---- ----- -- -- ----- - -------------------------- ------- - --------- -------- --- ------------ ---------------- ---------- ------------- -- ------ ----- --------- ---------- ---------- - ------------------- ------------------- - -------------------------------------- - -
在上面的代码中,我们定义了一个名为 logger
的中间件,并在 AppModule
模块中使用了它。
总结
本文介绍了如何在 Deno 中使用 NestJS 进行 Web 应用开发。我们首先安装了 Deno 和 NestJS,并创建了一个简单的 Web 应用。接着,我们介绍了 NestJS 的常用特性,包括控制器、模块、服务、依赖注入和中间件。希望本文能够帮助你快速上手 Deno 和 NestJS,并在实际项目中得到应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6638bf7bd3423812e46ca000