Typeorm не использует ormconfig. json файл - PullRequest
0 голосов
/ 14 января 2020

я настраиваю гнездо js ormconfig. json, но typeorm не подключается к базе данных mysql 8, это отображается в cli

[Nest] 13324   - 2020-01-14 4:15:32   [NestFactory] Starting Nest application...
[Nest] 13324   - 2020-01-14 4:15:32   [InstanceLoader] AppModule dependencies initialized +513ms
[Nest] 13324   - 2020-01-14 4:15:32   [InstanceLoader] TypeOrmModule dependencies initialized +5ms
[Nest] 13324   - 2020-01-14 4:15:36   [TypeOrmModule] Unable to connect to the database. Retrying (1)... +4061ms
Error: Cannot find module 'src/user/user.entity'
Require stack:
- C:\Users\redwolf\Labs\projets-pro\kissing-api\src\appel\appel.entity.ts
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\typeorm\platform\PlatformTools.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\typeorm\driver\sqlserver\SqlServerDriver.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\typeorm\migration\MigrationExecutor.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\typeorm\connection\Connection.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\typeorm\connection\ConnectionManager.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\typeorm\index.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\@nestjs\typeorm\dist\common\typeorm.utils.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\@nestjs\typeorm\dist\common\typeorm.decorators.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\@nestjs\typeorm\dist\common\index.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\@nestjs\typeorm\dist\index.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\@nestjs\typeorm\index.js
- C:\Users\redwolf\Labs\projets-pro\kissing-api\src\app.module.ts
- C:\Users\redwolf\Labs\projets-pro\kissing-api\src\main.ts
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)
    at Function.Module._load (internal/modules/cjs/loader.js:690:27)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (C:\Users\redwolf\Labs\projets-pro\kissing-api\src\appel\appel.entity.ts:3:1)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Module.m._compile (C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\ts-node\src\index.ts:806:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Object.require.extensions.<computed> [as .ts] (C:\Users\redwolf\Labs\projets-pro\kissing-api\node_modules\ts-node\src\index.ts:809:12)
    at Module.load (internal/modules/cjs/loader.js:815:32)

все объекты находятся в sr c папка, но консоль все еще говорит, что вы не

, и это мой код

app.module.ts

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

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

ormconfig. json

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "admin",
  "password": "",
  "database": "kissing_db",
  "synchronize": true,
  "logging": true,
  "entities": [
    "src/**/*.entity.ts",
    "dist/**/*.entity.js"
  ],
  "migrationsTableName": "migration",
  "migrations": [
    "src/migration/*.ts"
  ],
  "cli": {
    "migrationsDir": "./src/migration"
  },
  "ssl": false
}

Я не публикую это с паролем по соображениям безопасности, надеюсь, вы поймете.

Ответы [ 2 ]

1 голос
/ 14 января 2020

При компиляции из Typescript в JavaScript ваш код перемещается из файлов .ts в каталоге src в .js файлы в каталоге dist. Оттуда Node все еще пытается разрешить пути, заданные из вашего базового каталога (один раз в dist, базовое значение равно dist), поэтому он пытается разрешить dist/src/user/user.entity, который, очевидно, не существует. Вместо этого вы должны удалить src/**/*.entity.ts из ormconfig.json, чтобы он просматривал только скомпилированные файлы JavaScript.

Здесь немного больше информации .

0 голосов
/ 14 января 2020

Я думаю, что нашел решение, я только что создал поле ormconfig.js без h entities, например,

module.exports = {
   "type": "mysql",
   "host": "localhost",
   "port": 3306,
   "username": "admin",
   "password": "",
   "database": "kissing_db",
   "synchronize": true,
   "logging": true,
};

и отредактировал мои package.json стартовые сценарии с помощью ts-node, оно похоже, что ts-node автоматически находит файлы сущностей.

...