前言:雖然使用官網的cli
工具生成了一個基本的項目,可是因爲正常開發中的項目的目錄結構每每須要自定義的,官方這個例子並不能知足咱們的需求,並且對於新手來講,有一個完整的入門示例也是相當重要的。node
代碼編寫工具採用VSCode
.git
目錄功能具體描述:github
first-nestjs-app
項目根目錄node_modules
node.js
模塊安裝目錄 。cli
工具不會生成這個目錄,須要本身安裝src cli
工具生的源代碼目錄test
測試目錄src
目錄下的 test
目錄是我自定義的目錄,用於放演示代碼。具體代碼描述:npm
import { Get, Controller } from '@nestjs/common'; import { TestService } from './test.service'; // 引用service文件 @Controller('test') // /test/ 路徑 export class TestController { constructor(private readonly testService: TestService) {} @Get() // /test/ 路徑 firstTest 函數名能夠隨意起 firstTest(): string { return this.testService.test(); } @Get(':id') // /test/1 等等路徑 findOneTest(): string { return this.testService.findOneTest(); } } // controller 只是作個簡單的路由轉發,具體的邏輯是由service文件處理的。
import { Injectable } from '@nestjs/common'; @Injectable() export class TestService { test(): string { // test 名字和 test.controller.ts 調用的地方要對應上 return 'test test test!'; //具體的邏輯處理這裏作 } findOneTest(): string { return 'findOneTest!'; } }
import { Module } from '@nestjs/common'; import { TestController } from './test.controller'; import { TestService } from './test.service'; // 在Module的配置文件裏配置對應的 controller 和 service @Module({ imports: [], controllers: [TestController], providers: [TestService] }) export class TestModule {}
// 最後須要把TestModule 加入到app.module.ts 的配置裏 import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { TestModule } from './test/test.module'; //引入文件 @Module({ imports: [TestModule], // 加到這裏來 controllers: [AppController], providers: [AppService] }) export class AppModule {}
最後先安裝好全部的依賴, npm install
或者 cnpm install
,而後在根目錄下執行 npm start run
.而後在瀏覽器訪問 http://localhost:3000/test/
和 http://localhost:3000/test/1
分別會輸出不一樣的結果。瀏覽器
PS:此例子對Node.js
的版本和Nest.js
(5.0以上)的版本也是有要求的,具體看官方文檔。Nest.js
有中文文檔的,可是那個網站有時候會訪問不了。不過在github
上有中文翻譯的託管。app
此例子完整代碼在GitHub上也能夠查看。ide