Skip to main content

One post tagged with "mysql"

View All Tags

目标:实现接口的增删改查

在这个实践中,我们将通过一步步的实践,使用Nest.js和MySQL数据库,实现一个具有增删改查功能的接口。

第一步,配置环境

首先,确保你已经安装了Node.js和npm。接着,通过以下命令安装Nest CLI:

npm install -g @nestjs/cli

然后,创建一个新的Nest.js项目:

nest new my-nest-project

这将为你创建一个基本的Nest.js项目,并安装必要的依赖。

第二步,启动 MySQL

确保你已经安装了MySQL数据库。启动MySQL服务,并创建一个新的数据库用于我们的项目。

第三步,链接 MySQL

使用Nest.js中的TypeORM库来链接MySQL数据库。在src目录下,创建一个typeorm.config.ts文件,配置数据库链接信息。

// src/typeorm.config.ts

import { TypeOrmModuleOptions } from '@nestjs/typeorm';

const config: TypeOrmModuleOptions = {
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'your_username',
password: 'your_password',
database: 'your_database_name',
entities: [__dirname + '/../**/*.entity{.ts,.js}'],
synchronize: true, // Set to false in production
};

export default config;

然后,在主模块 app.module.ts 中引入 TypeOrmModule:

// src/app.module.ts

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import config from './typeorm.config';

@Module({
imports: [TypeOrmModule.forRoot(config)],
})
export class AppModule {}

第四步,开发接口

创建一个新的模块和控制器用于处理数据的增删改查操作。

nest generate module users
nest generate controller users

users.controller.ts文件中,实现增删改查的业务逻辑。

// src/users/users.controller.ts

import { Controller, Get, Post, Body, Param, Delete, Put } from '@nestjs/common';
import { UsersService } from './users.service';

@Controller('users')
export class UsersController {
constructor(private readonly usersService: UsersService) {}

@Get()
findAll() {
return this.usersService.findAll();
}

@Get(':id')
findOne(@Param('id') id: string) {
return this.usersService.findOne(id);
}

@Post()
create(@Body() user) {
return this.usersService.create(user);
}

@Put(':id')
update(@Param('id') id: string, @Body() user) {
return this.usersService.update(id, user);
}

@Delete(':id')
remove(@Param('id') id: string) {
return this.usersService.remove(id);
}
}

第五步,接口联调

通过运行以下命令启动应用程序:

npm run start

通过相关接口访问,你将能够使用这个接口进行增删改查操作。

总结

通过这个Nest.js + MySQL实践,我们实现了一个具有增删改查功能的接口。Nest.js的模块化和TypeORM的数据库支持使得全栈开发更加简单和高效。在实际项目中,你可以根据需要进一步扩展和优化这个基础框架,满足复杂项目的需求。

练习nestmysql2 min read