是一個用(yong)(yong)于構建(jian)高效、可擴展(zhan)的 Node.js 服(fu)務器端應用(yong)(yong)程序(xu)的開發框架
需要
$ npm i -g @nestjs/cli
$ nest new project-name
是一(yi)個命(ming)令行界面工具,可以幫助(zhu)你初始(shi)化、開發和(he)維(wei)護(hu)你的Nest應用(yong)程(cheng)序,安裝依賴并啟動(dong)開發服務器
$ cd <your-project-name>
$ npm run start
當你(ni)準備(bei)將(jiang)應用發布到(dao)生產環境(jing)時,請運(yun)行:
$ npm run build
此命令會在 ./dist
文件夾中為你的(de)應用創(chuang)建一個(ge)生產環境(jing)的(de)構建版(ban)本
命令 | 別名 | 描述 |
---|---|---|
new | n | 使用模板快速創建應用 |
generate | g | 自動生成Controller 、Providers 和 Modules |
build | 打包并輸出./dist目錄 | |
start | 打包并運行 | |
add | 安裝一個符合Nest的庫,同npm install | |
info | i | 輸出系統信息、CLI版本和Nest Package信息 |
目前 NestJS
支持兩個 Node HTTP
平臺: 和 。從技術上講,一(yi)旦創建了適配(pei)器,Nest 便可以使用任(ren)何 Node HTTP 框架(jia)
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()
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 # 源(yuan)代(dai)碼目(mu)錄
│?? ├── app.module.ts # 應(ying)用(yong)程(cheng)序(xu)的根模塊
│ ├── app.controller.spec.ts # 控制器(qi)的單元(yuan)測試
│ ├── app.controller.ts # 單(dan)個路由的基(ji)本控制器
│ ├── app.service.ts # 具有(you)單一方法的(de)基本服(fu)務
│ └── main.ts # 應用程(cheng)序的入口文件(jian)
│ # 它使用(yong)核心函數 NestFactory 來創(chuang)建 Nest 應用(yong)程序的實(shi)例
└── test # 測(ce)試目錄
├── app.e2e-spec.ts
└── jest-e2e.json
NestCLI
默認是使用TypeScript
進行初始化項目的,如果需要使用JavaScript
請使用以下指令
$ git clone //github.com/nestjs/javascript-starter.git
$ cd <javascript-starter>
$ npm install
$ npm run start
需要的一點是,JavaScript
的版本是需要Babel
的