【.com快译】介绍NestJS是一个相对较新的框架,可以很容易地使用NodeJS开发后端应用程序。而且,NestJS正逐渐被越来越多的用户所使用。在本文中,我们将了解构成该框架支柱的NestJS基础知识和核心基础知识。为了更好地理解NestJS基础知识,将使用NestCLI启动一个入门应用程序。1.语言用于编写NestJS应用程序的核心语言是Typescript。然而,由于NestJS是建立在NodeJS之上的,它也支持纯JavaScript。NestJS使用最新的语言特性,因此需要像Babel这样的编译器来编译。由于NestJS的灵活性,可以根据开发团队的需要和专业知识使用Typescript或Javascript。然而,NestJS的创建者似乎更喜欢Typescript。2.设置NestJSNestJS需要NodeJS和NPM作为先决条件。因此,在继续下一步之前,请确保两者都存在于您的系统中。根据官方文档,NestJS需要10.13以上的NodeJS版本。安装NodeJS后,启动一个新的NestJS项目非常简单。我们首先需要使用以下命令安装NestJSCLI。$npmi-g@nestjs/cli在这里,我们将全局安装NestJSCLI。如果您遇到一些权限相关的问题,请参考这篇文章。接下来,我们可以使用NestCLI创建一个新项目。$nestnewdemo-project此命令将创建一个名为demo-project的目录,并将安装node_modules(以及其他一些样板文件)。我们将有一个/src目录,其中包含几个核心文件。drwxr-xr-x7saurabhdashora员工224Jul2409:46.drwxr-xr-x16saurabhdashora员工512Jul2409:50..-rw-r--r--1saurabhdashora员工617Jul2409:46app.controller.spec.ts-rw-r--r--1saurabhdashora员工274Jul2409:46app.controller.ts-rw-r--r--1saurabhdashora员工249Jul2409:46app.module.ts-rw-r--r--1saurabhdashora员工142Jul2409:46app.service.ts-rw-r--r--1saurabhdashora员工208Jul2409:46main.ts3。NestJS核心文件以下是核心文件的简要概述:app.controller.ts这是一个带有单一路由的最小控制器app.controller.spec.ts该文件包含控制器的单元测试app.module.ts根模块应用程序的appservice.ts具有单一方法的基本服务主文件用于使用核心NestFactory功能的应用程序的入口文件。基本上,它负责启动应用程序实例。让我们更详细地看看main.ts:main.tsimport{NestFactory}from'@nestjs/core';import{AppModule}from'./app.module';asyncfunctionbootstrap(){constapp=awaitNestFactory.create(AppModule);awaitapp.listen(3000);}bootstrap();在第1行中,我们从NestJS核心包中导入NestFactory函数。NestFactory暴露了一些静态方法,我们可以使用create()方法来创建应用程序实例。为此,我们导入AppModule并将其传递给create()调用。请参阅第5行。基本上,应用程序对象提供了一组方法,我们可以使用这些方法在端口3000上启动我们的HTTP侦听器。最后,我们在第8行调用bootstrap()函数。4.运行NestJS应用程序所需的一切使用NestCLI构建的项目启动应用程序。我只是通过执行启动服务器:$npmrunstart我们应该看到这样的输出:>demo-project@0.0.1start/Users/saurabhdashora/NestProjects/demo-project>neststart[Nest]3640-07/24/2021,10:57:51AMLOG[NestFactory]??StartingNestapplication...[Nest]3640-07/24/2021,10:57:51AMLOG[InstanceLoader]AppModuledependenciesinitialized+26ms[Nest]3640-2021年7月24日,上午10:57:51日志[RoutesResolver]AppController{/}:+6ms[Nest]3640-2021年7月24日,上午10:57:51日志[RouterExplorer]已映射{/,获取}route+1ms[Nest]3640-07/24/2021,10:57:51AMLOG[NestApplication]Nestapplicationsuccessfullystarted+1ms基本上,此命令启动一个HTTP服务器侦听端口。在我们的例子中,端口是3000。随着应用程序的运行,我们可以转到浏览器并点击http://localhost:3000。我们将看到HelloWorld!打印出来。5.NestJS平台独立性NestJS的目标是平台独立性。这允许NestJS开发人员编写可重用的逻辑。换句话说,在不同类型的应用程序中使用相同的逻辑变得非常容易。从技术上讲,一旦创建了适配器,NestJS就可以与任何NodeHTTP框架一起使用。然而,开箱即用,它同时支持express和fastify。开发人员可以选择适合自己需求的一种。平台快递或快递是默认选择。另一种选择是platform-fastify。Fastify是一个专注于效率的高性能框架。两个平台都有自己的界面。这些分别被认为是NestExpressApplication和NestFastifyApplication。我们可以在app.create()调用中配置它们,如下所示:constapp=awaitNestFactory.create
