无法使用NestJS和TypeORM连接到MySQL数据库
我正在尝试使用NestJS创建一个新项目,我想在TypeORM的帮助下使用MySQL数据库,但我无法实现任何目标。我正在学习这个非常简单的教程,但仍然无法连接到MySQL数据库 我已经安装了所有依赖项:无法使用NestJS和TypeORM连接到MySQL数据库,mysql,nestjs,typeorm,Mysql,Nestjs,Typeorm,我正在尝试使用NestJS创建一个新项目,我想在TypeORM的帮助下使用MySQL数据库,但我无法实现任何目标。我正在学习这个非常简单的教程,但仍然无法连接到MySQL数据库 我已经安装了所有依赖项: "dependencies": { "@nestjs/common": "^7.5.1", "@nestjs/core": "^7.5.1", "@nestjs/
"dependencies": {
"@nestjs/common": "^7.5.1",
"@nestjs/core": "^7.5.1",
"@nestjs/platform-express": "^7.5.1",
"@nestjs/typeorm": "^7.1.5",
"mysql": "^2.18.1",
"mysql2": "^2.2.5",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"rxjs": "^6.6.3",
"typeorm": "^0.2.31"
}
在本例中,我没有使用任何实体,但即使我尝试使用实体,并在app-module.ts的“entities:[]”中使用全局路径“dist/***.entity{.ts、.js}定义它们,它仍然不起作用
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'root',
database: 'test',
entities: ["dist/**/*.entity{.ts,.js}"],
synchronize: true,
})],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {
constructor() {}
}
需要注意的一件非常重要的事情是,由于某种原因,我无法运行“typeorm”命令,就好像我从未安装过它一样,因为它显然位于node_模块中。只有在前面使用“npx”时,我才能运行“typeorm”命令。我偷看了其他stackoverflow线程,但没有找到任何可以帮助我的东西
由于某种原因,我的系统找不到TypeForm,我的项目是否无法运行?提前谢谢
编辑:
这也是我得到的错误
[Nest] 14092 - 02/24/2021, 1:55:56 PM [TypeOrmModule] Unable to connect to the database. Retrying (6)... +5082ms
Error: connect ECONNREFUSED 127.0.0.1:3306
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
它可以帮助你解决可能的问题!您必须先安装TypeForm模块。如果安装了typeorm模块,请检查typeorm配置文件。这里有一个postgres的例子。你必须使用mysql而不是postgres
您也可以从“帮助”https://typeorm.io/#/connection“它可以帮助您解决可能存在的问题!您必须先安装TypeForm模块。如果安装了typeorm模块,请检查typeorm配置文件。这里有一个postgres的例子。你必须使用mysql而不是postgres
您也可以从“帮助”https://typeorm.io/#/connection“我解决了我的问题。这是我犯的一个非常愚蠢的错误,因为我忘了在本地启动MySQL服务器,所以NestJS应用程序无法连接到它是完全有道理的。我以为问题出在我的代码里
很抱歉浪费了大家的时间,我感谢你的回答 我解决了我的问题。这是我犯的一个非常愚蠢的错误,因为我忘了在本地启动MySQL服务器,所以NestJS应用程序无法连接到它是完全有道理的。我以为问题出在我的代码里
很抱歉浪费了大家的时间,我感谢你的回答我没有考虑,谢谢。你确定MySQL在你的本地运行吗?我没有考虑,谢谢。已编辑。您确定mysql正在本地计算机上运行吗?
import { Global, Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { ConfigModule, ConfigService } from "@nestjs/config";
import { TodoEntity } from "src/entities/todo.entity";
@Global()
@Module({
imports: [
TypeOrmModule.forRootAsync({
imports:[ConfigModule],
useFactory: (configService: ConfigService) => ({
type:'postgres',
host:'localhost',
port:5432,
username:'postgres',
password:'postgres',
database:'postgres',
schema:'public',
synchronize: true,
logging: true,
entities:[TodoEntity],
}),
inject: [ConfigService],
}),
],
})
export class TypeOrmConfigModule{}