使用 CLI 创建模块
$ nest g module XXX
使用 CLI 创建控制器
$ nest g controller XXX --no-spec//不生成测试文件
使用 CLI 创建service
nest g service test --no-spec
设置全局前缀
app.setGlobalPrefix('api');
get 和 post 接口
test.service.ts
import { Injectable } from '@nestjs/common';
@Injectable()
export class TestService {
getTest(){
return {
code: 0,
data: '000',
msg: '访问成功'
}
}
addTest(){
return {
code: 200,
data: '000',
msg: '访问成功'
}
}
getTestById(id:number){
let reJson:any = {}
switch (id) {
case 1:
reJson = {id:1,msg:'test1'}
break;
case 2:
reJson = {id:2,msg:'test2'}
break;
case 3:
reJson = {id:3,msg:'test3'}
break;
}
return reJson;
}
addByData(data:any){
return {
code: 200,
data,
msg: '访问成功'
}
}
}
test.controller.ts
import { Controller, Get ,Post,Request,Query,Body} from '@nestjs/common';
import {TestService} from './test.service'
@Controller('test')
export class TestController {
constructor(private testService:TestService) {
}
@Get()
getTest():any{
return this.testService.getTest();
}
@Post('/add')
addTest():any{
return this.testService.addTest()
}
@Get('/getTestById')
getTestById(@Query() query):any{
//@Request() req -> @Query() query
//req.query -> query
//通过 Request 得到字符串效果,需要 parseInt
let id:number = parseInt(query.id)
return this.testService.getTestById(id)
}
@Post('/addByData')
addByData(@Body() body):any{
return this.testService.addByData(body);
}
}
动态路由(?id -> /id)
@Get('/findTestById/:id')
// :id 后面可以多个拼接 /:name/:age
findTestById(@Request() req):any{
//@Request() req -> Param params
//req.params -> params
let id:number = parseInt(params.id)
return this.testService.getTestById(id)
}
获取请求头
import { Headers} from '@nestjs/common';
@Get('/findTestById/:id')
findTestById(@Param() params,@Headers header):any{
let id:number = parseInt(params.id)
return this.testService.getTestById(id)
}