reference/docs/nestjs.md
42:p 0b66ca4b90
docs: add nestjs.md (#151) (#29)
* docs: 添加 'Provide / Inject' 组件传值

* feat: add nestjs.md cheatsheet.
2022-11-21 08:44:25 +08:00

3.3 KiB
Raw Blame History

NestJS 备忘清单

NestJS 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架

创建应用

NestCLI

NestJS 需要 Node.js >= 12

npm i -g @nestjs/cli
nest new project-name

Nest CLI 是一个命令行界面工具可以帮助你初始化、开发和维护你的Nest应用程序

⚡ We will scaffold your app in a few seconds..

? Which package manager would you ❤️  to use?
 - npm
 - yarn
 - pnpm

安装依赖并启动开发服务器

cd <your-project-name>
npm run start

当你准备将应用发布到生产环境时,请运行:

$ npm run build

此命令会在 ./dist 文件夹中为你的应用创建一个生产环境的构建版本

CLI指令

Command Alias Description
Command Alias Description
new n 使用模板快速创建应用
generate g 自动生成ControllerProvidersModules
build 打包并输出./dist目录
start 打包并运行
add 安装一个符合Nest的库npm install
info i 输出系统信息、CLI版本和Nest Package信息

Platform(平台)

目前NestJS支持两个Node HTTP平台:ExpressFastify。从技术上讲一旦创建了适配器Nest 便可以使用任何 Node HTTP 框架

platform-express

import { NestFactory } from '@nestjs/core'
import { AppModule } from './app.module'
import { NestExpressApplication } from '@nestjs/platform-express'

async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule)
  await app.listen(3000)
}
bootstrap()

platform-fastify

import { NestFactory } from '@nestjs/core'
import { AppModule } from './app.module'
import { NestFastifyApplication } from '@nestjs/platform-fastify'

async function bootstrap() {
  const app = await NestFactory.create<NestFastifyApplication>(AppModule)
  app.enableCors() // 开启Cors
  app.register(fastifyCsrf)
  await app.listen(4000, '0.0.0.0')
  
  console.log(`Application is running on: ${await app.getUrl()}`)
}
bootstrap()

目录

├── src             # 源代码目录
│   ├── app.module.ts            // 应用程序的根模块
|   └── app.controller.spec.ts   // 控制器的单元测试
|   ├── app.controller.ts        // 单个路由的基本控制器
|   └── app.service.ts           // 具有单一方法的基本服务
|   └── main.ts                  // 应用程序的入口文件,它使用核心函数 NestFactory 来创建 Nest 应用程序的实例
|
└── test            # 测试目录
    ├── app.e2e-spec.ts
    └── jest-e2e.json

JavaScript

NestCLI 默认是使用TypeScript进行初始化项目的,如果需要使用JavaScript请使用以下指令

git clone https://github.com/nestjs/javascript-starter.git

cd <javascript-starter>
npm install
npm run start

需要注意的一点是,JavaScript的版本是需要Babel

另见

NestJs 官方文档