老师, UserService 报错,这里怎么修改?

老师, UserService 报错,这里怎么修改?

app.module.ts

import { TypeOrmModule } from '@nestjs/typeorm';
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UserModule } from './module/user/user.module';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: '111111',
      database: 'water-drop',
      entities: [`${__dirname}/../modules/**/*.entity{.ts,.js}`], // 指定定义数据表的映射文件
      logging: true, // 开启日志
      synchronize: true, // 同步表结构
      autoLoadEntities: true, // 初始化,没有表自动创建表
    }),
    UserModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

app.controller.ts

import { Controller, Get } from '@nestjs/common';
// import { AppService } from './app.service';
import { UserService } from './module/user/user.service';

@Controller()
export class AppController {
  // // 默认示例
  // constructor(private readonly appService: AppService) {}
  // @Get('/a')
  // getHello(): string {
  //   return this.appService.getHello();
  // }

  constructor(private readonly userService: UserService) {}
  @Get('/create')
  async create(): Promise<boolean> {
    return await this.userService.create({
      name: '水滴超级管理员',
      desc: '管理员',
      tel: '8800888',
      password: '123456',
      account: 'admin',
    });
  }
}

app.service.ts

import { Injectable } from '@nestjs/common';

@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}

user.module.ts

import { Module, ConsoleLogger } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';

import { User } from './models/user.entity';

@Module({
  imports: [TypeOrmModule.forFeature([User])],
  providers: [ConsoleLogger],
  exports: [],
})
export class UserModule {}

user.service.ts

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { User } from './models/user.entity';
import { DeepPartial, Repository } from 'typeorm';

@Injectable()
export class UserService {
  constructor(
    @InjectRepository(User) private UserRepository: Repository<User>,
  ) {}

  async create(entity: DeepPartial<User>): Promise<boolean> {
    const res = await this.UserRepository.insert(entity);
    console.log('res', res);
    return true;
  }
}

https://img1.sycdn.imooc.com/climg/656003a509d7a3de19201020.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,遗漏了模块注入、导出。修改user.module.ts文件:

https://img1.sycdn.imooc.com/climg/65600a6709cdef9d08270384.jpg

provider用于把自己模块中的service注入进来。比如user.module.ts中,通过provider,注入user.service.ts。

exports用来导出模块,比如导出UserService,这样其他模块中,才能够使用UserService。比如app.controller.ts中使用了UserService。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师