//1.安装nestjs 框架,新建工程 project-name
cnpm install -g @nestjs/cli
nest new project-name
//2.进入项目 cnpm run start:dev 运行项目
//http://localhost:3000/
🧱 第一步:安装依赖
npm install @nestjs/typeorm typeorm sqlite3
🧩 第二步:配置 SQLite 和 TypeORM
src/app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UserModule } from './user/user.module';
import { User } from './user/user.entity'
import { join } from 'path';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'sqlite',
database: join(__dirname, '..', 'data', 'db1.sqlite'),
entities: [User],
synchronize: true, // 开发环境可以,生产环境别用
}),
UserModule,
],
})
export class AppModule {}
👤 第三步:创建用户实体(User Entity)
src/user/user.entity.ts
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
email: string;
}
📦 第四步:生成模块 + 服务 + 控制器
nest g module user
nest g service user
nest g controller user
📦 第五步:UserModule 配置
src/user/user.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity';
import { UserService } from './user.service';
import { UserController } from './user.controller';
@Module({
imports: [TypeOrmModule.forFeature([User])],
providers: [UserService],
controllers: [UserController],
})
export class UserModule {}
🔧 第六步:UserService 实现 CRUD 逻辑
src/user/user.service.ts
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private userRepo: Repository<User>,
) {}
create(userData: Partial<User>) {
const user = this.userRepo.create(userData);
return this.userRepo.save(user);
}
findAll() {
return this.userRepo.find();
}
findOne(id: number) {
return this.userRepo.findOneBy({ id });
}
async update(id: number, updateData: Partial<User>) {
await this.userRepo.update(id, updateData);
return this.findOne(id);
}
async remove(id: number) {
await this.userRepo.delete(id);
return { deleted: true };
}
}
🌐 第七步:UserController 实现 Nestjs API
src/user/user.controller.ts
import { Controller, Get, Post, Body, Param, Put, Delete } from '@nestjs/common';
import { UserService } from './user.service';
import { User } from './user.entity';
@Controller('users')
export class UserController {
constructor(private readonly userService: UserService) {}
@Post()
create(@Body() userData: Partial<User>) {
return this.userService.create(userData);
}
@Get()
findAll() {
return this.userService.findAll();
}
@Get(':id')
findOne(@Param('id') id: string) {
return this.userService.findOne(+id);
}
@Put(':id')
update(@Param('id') id: string, @Body() updateData: Partial<User>) {
return this.userService.update(+id, updateData);
}
@Delete(':id')
remove(@Param('id') id: string) {
return this.userService.remove(+id);
}
}
4280

被折叠的 条评论
为什么被折叠?



