语言

我们爱上了 ,但最重要的是,我们喜欢 Node.js。 这就是为什么 Nest 兼容 TypeScript 和纯 JavaScript。 Nest 正利用最新的语言功能,所以要使用原生的 JavaScript 框架,我们需要一个 编译器。

在文章中,我们主要使用 TypeScript ,但是当它包含一些 Typescript 特定的表达式时,您总是可以将代码片段切换到 JavaScript 版本。

【译者注:由于 nest.js 对 ts 特性支持更好,中文文档只翻译 Typescript】

请确保您的操作系统上安装了 Node.js(>= 10.13.0)

一分钟安装 node.js (支持X86 ARM MIPS 等架构,需要版本管理或者系统为 Raspbian 请直接看 NVM)

windows

  1. 点击下载 Node.js

  2. 安装Node.js

Powershell/CMD 可以打印出这个说明安装成功。(部分系统需要重启后环境变量才生效)

linux(建议)

(NVM 支持 所有 Linux 及 Raspbian ,支持多版本管理,windows 点击进入

如果没 curl ,可以使用 wget 安装

    使用淘宝加速下载(可选)

    1. export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
    1. nvm install --lts

    终端可以打出以下信息说明安装成功:

    1. $node -v
    2. v12.10.0
    3. $ npm -v
    4. 6.10.3

    MacOS

    1. 点击下载 Node.js

    2. 安装Node.js

    打印出这个说明安装成功。(部分系统需要重启后环境变量才生效)

    Debian系

    (支持ARM及X86平台)

    1. curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
    2. sudo apt-get install -y nodejs

    (如果安装缓慢,可以使用国内镜像源) 终端可以打出以下信息说明安装成功:

    1. $node -v
    2. v12.10.0
    3. $ npm -v
    4. 6.10.3

    Redhat系

    (支持X86平台)

    1. curl -sL https://rpm.nodesource.com/setup_12.x | bash -

    (如果安装缓慢,可以使用国内镜像源) 终端可以打出以下信息说明安装成功:

    1. $node -v
    2. $ npm -v

    Snap

    (支持 所有 Linux )

    1. sudo snap install node --classic --channel=12

    (如果提示 snap 不存在,请先安装 snapd) 终端可以打出以下信息说明安装成功:

    就是这么简单! 不需要安装拓展,不需要额外安装 nginx/apache

    建立

    npm

    1. $ npm i -g @nestjs/cli
    2. $ nest new project-name

    yarn

    1. $ yarn global add @nestjs/cli
    2. $ nest new project-name

    将创建 project 目录, 安装node模块和一些其他样板文件,并将创建一个 src 目录,目录中包含几个核心文件。

    1. src
    2. ├── app.controller.ts
    3. ├── app.module.ts
    4. └── main.ts

    以下是这些核心文件的简要概述:

    main.ts 包含一个异步函数,它负责引导我们的应用程序:

    1. import { AppModule } from './app.module';
    2. async function bootstrap() {
    3. const app = await NestFactory.create(AppModule);
    4. await app.listen(3000);
    5. }
    6. bootstrap();

    要创建一个 Nest 应用实例,我们使用了 NestFactory 核心类。NestFactory 暴露了一些静态方法用于创建应用实例。 create() 方法返回一个实现 INestApplication 接口的对象, 并提供一组可用的方法, 在后面的章节中将对此进行详细描述。 在上面的main.ts示例中,我们只是启动 HTTP 服务器,它允许应用程序等待入站 HTTP 请求。

    请注意,使用 Nest CLI 搭建的项目会创建一个初始项目结构,我们鼓励开发人员将每个模块保存在自己的专用目录中。

    Nest 旨在成为一个与平台无关的框架。 通过平台,可以创建可重用的逻辑部件,开发人员可以利用这些部件来跨越多种不同类型的应用程序。 从技术上讲,Nest 可以在创建适配器后使用任何 Node HTTP 框架。 有两个支持开箱即用的 HTTP 平台:express 和 fastify。 您可以选择最适合您需求的产品。

    无论使用哪种平台,它都会暴露自己的 API。 它们分别是 NestExpressApplication 和 NestFastifyApplication。

    将类型传递给 NestFactory.create() 函数时,如下例所示,app 对象将具有专用于该特定平台的函数。 但是,请注意,除非您确实要访问底层平台API,否则无需指定类型。

    1. const app = await NestFactory.create<NestExpressApplication>(AppModule);

    运行应用程序

    安装过程完成后,您可以在系统命令提示符下运行以下命令,以启动应用程序监听入站 HTTP 请求:

    此命令在 src 目录中的 main.ts 文件中定义的端口上启动 HTTP 服务器。在应用程序运行时, 打开浏览器并访问 。 你应该看到 Hello world! 信息。

    学习资料


    Onevps-不限流量

    【捐赠】

    译者署名