前言:虽然使用官网的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