1、发送一个POST请求,返回 “这是一个POST请求,成功示例”
app.service.ts
文件新增一个函数 postHello
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello NestJS!';
}
postHello():string {
return '这是一个POST请求,成功示例'
}
}
app.controller.ts
文件新增以下代码
//引入Post 装饰器
import { Controller, Get,Post } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
//处理Post请求处理函数
@Post()
postHello(): string{
return this.appService.postHello();
}
}
接着使用postman 发送 POST 请求你就可以看到以下结果
2、连接mysql
这里跳过安装mysql的部分
- 安装 TypeORM 和 MySQL 驱动程序:
npm install typeorm @nestjs/typeorm mysql2
- 在
app.module.ts
文件中导入 TypeORM 模块:
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql', // 数据库类型
host: 'localhost', // 数据库的连接地址host
port: 3306, // 数据库的端口 3306
username: 'root', // 连接账号
password: '12345678', // 连接密码
database: 'test', // 连接的库名
retryDelay: 500, // 重试连接数据库间隔
retryAttempts: 10, // 允许重连次数
synchronize: true, // 是否将实体同步到数据库
autoLoadEntities: true, // 自动加载实体配置,forFeature()注册的每个实体都自己动加载
}),
TypeOrmModule.forFeature([User]),
],
controllers: [],
providers: [],
})
export class AppModule {}
3、新建实体文件user.entity.ts
添加以下代码。
import {
Entity,
Column,
PrimaryGeneratedColumn,
CreateDateColumn,
} from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
sign: string;
@Column()
account: string;
@Column()
password: string;
@CreateDateColumn()
createTime?: Date;
@CreateDateColumn()
loginTime?: Date;
}
// 含义 创建一个 user 表,字段包含 id,name,sign,等等。
4、查询数据库中的数据。
在app.service.ts
文件中添加以下代码
import { Injectable, HttpStatus, BadRequestException } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from '../../entity/user.entity';
@Injectable()
export class AppService {
constructor(
@InjectRepository(User)
private readonly userList: Repository<User>,
) {}
getHello(): string {
return 'Hello NestJS!';
}
postHello():string {
return '这是一个POST请求,成功示例'
}
//查询所有用户
async findUserAll(): Promise<any> {
const userList = await this.userList.find();
return userList;
}
}
5、修改 app.controller.ts
代码如下
//引入Post 装饰器
import { Controller, Get,Post } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): any {
return this.appService.findUserAll();
}
//处理Post请求处理函数
@Post()
postHello(): string{
return this.appService.postHello();
}
}
结尾:今天我们处理了一个POST请求,以及连接mysql,后面再详细更新如何一步步实现一个简单官网Demo的服务端所需代码。