nest.js学习笔记2
nest.js学习笔记2
1 | //对于moudle的笔记,每个应用程序的根模块衍生子模块, |
1.1 service(服务)
- 1.先创建user.service.ts;
- 2.
import { CreateUserDto } from './dto/create-user.dto';
这个上一篇的2.2 请求负载内有介绍;在Controller中使用1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22//@Injectable()装饰器 =>声明UsersService是一个
//可以由Nest IoC容器管理的类。
import { Injectable } from '@nestjs/common';
//请求负载
import { CreateUserDto } from './dto/create-user.dto';
()
//该类有两个方法,会在Controller中使用。
export class UserService {
private Person: CreateUserDto[] = [];
create(userinfo: CreateUserDto) {
this.Person.push(userinfo);
return this.Person;
}
findOne(name: string) {
const res = this.Person.find((item: CreateUserDto) => {
return item.name === name;
});
return res;
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44import {
Body,
Controller,
Get,
Param,
Post,
// Delete,
} from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
'user') (
export class UserController {
//通过类构造函数注入的。使用private语法
constructor(private readonly userService: UserService) {}
'/add') (
async create() { () createUserDto: CreateUserDto
const res = await this.userService.create(createUserDto);
return {
res,
msg: 'success',
code: 200,
};
}
'/findOne') (
async findOne(string) { () id:
const res = await this.userService.findOne(id);
if (res) {
return {
res,
code: 200,
msg: 'success',
};
} else {
return {
code: 400,
msg: 'fail',
};
}
}
}
2 热重载问题
每次更新或者编写代码对typeScript进行重新编译,对开发模式很不友好,可以通过webpack的HMR(热模块替换)进行简化迭代。
两种情况:
1.用nest cli,
1 | 安装 |
安装完成后,在应用程序的根目录中创建一个名为 webpack-hmr.config.js 的文件
1 | const nodeExternals = require('webpack-node-externals'); |
之后在main.js中
1 | declare const module: any; |
在pakeage.json中更新变量
1 | "dev": "nest build --webpack --webpackPath webpack-hmr.config.js --watch", |
后重新启动终端显示为
1 | webpack 5.90.1 compiled successfully in 5534 ms |
评论