首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nestjs连接数据库可以进行一对多连接

定义两个实体,一个是User,另一个是Article。

// src/entities/User.tsimport { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';import { Article } from './Article';

@Entity()export class User { @PrimaryGeneratedColumn() id: number;

@Column() name: string;

@OneToMany(type => Article, article => article.user) articles: Article[];}

// src/entities/Article.tsimport { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';import { User } from './User';

@Entity()export class Article { @PrimaryGeneratedColumn() id: number;

@Column() title: string;

@ManyToOne(type => User, user => user.articles) user: User;}

创建一个控制器以处理HTTP请求。

// src/controllers/user.controller.tsimport { Controller, Get, Post, Body, Param } from '@nestjs/common';import { UserService } from '../services/user.service';import { User } from '../entities/User';

@Controller('users')export class UserController { constructor(private userService: UserService) {}

@Post() async createUser(@Body() user: Partial<User>): Promise<User> { return await this.userService.createUser(user); }

// 其他控制器方法...}

也可以在serve层上使用query对mysql进行sql语句查询,下面对两张表进行连接查询。

this.usersRepository.query( `select c.name as name,c.age as age from user as u left join cat as c on u.id=c.user_id where u.id=${id}`)

也可以使用typeorm进行单个查询

findOne(id:number):Promise<User> { const options: FindOneOptions<User>={ where:{id} } return this.usersRepository.findOne(options) }

nestjs很灵活,对于前端开发者上手难度也不大

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OOj8lgxF6wkQFra-m729IuWg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券