NestJs / TypeORM / CloudFoundry - Ошибка при отправке в CloudFoundry - PullRequest
0 голосов
/ 13 октября 2019

В настоящее время я работаю над проектом, в котором я хочу создать приложение NodeJS, которое работает на CloudFoundry. Приложение должно предоставить некоторые данные из базы данных. Для реализации требований я использую NestJs и TypeORM.

Когда я запускаю приложение на локальном компьютере, все работает нормально. Но когда я пытаюсь отправить приложение в Cloud Foundry (используя cf push), возникает эта ошибка:

   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR internal/modules/cjs/loader.js:638
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     throw err;
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     ^
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR Error: Cannot find module 'src/allocation/allocation.entity'
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at Module.require (internal/modules/cjs/loader.js:690:17)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at require (internal/modules/cjs/helpers.js:25:18)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at Object.<anonymous> (/home/vcap/app/dist/user/user.entity.js:12:29)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at Module._compile (internal/modules/cjs/loader.js:776:30)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at Module.load (internal/modules/cjs/loader.js:653:32)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
   2019-10-13T20:21:47.85+0200 [APP/PROC/WEB/0] ERR     at Function.Module._load (internal/modules/cjs/loader.js:585:3)

Я обнаружил, что ошибка возникает только при использовании TypeORMs Join Decorators (например, @OneToMany или @ManyToOne).

Это исходный код «alloc.entity» и «user.entity» (я пропустил некоторые свойства класса, чтобы показать только соответствующее содержимое):

(выделение.entity.ts):

import { Entity, Column, PrimaryColumn, ManyToOne } from 'typeorm';
import { UserEntity } from 'src/user/user.entity';

@Entity()
export class AllocationEntity {

  @ManyToOne(() => UserEntity, user => user.allocations)
  user: UserEntity;
}

(user.entity.ts):

import { AllocationEntity } from 'src/allocation/allocation.entity';
import { Entity, Column, PrimaryColumn, OneToMany } from 'typeorm';

@Entity()
export class UserEntity {
  @OneToMany(() => AllocationEntity, allocation => allocation.user)
  allocations: AllocationEntity[];
}

Кто-нибудь знает, как решить эту проблему?

Спасибозаранее!

f1a2buge

1 Ответ

0 голосов
/ 14 октября 2019

Решением было изменить пути импорта:

Пример:

Неправильно:

import { AllocationEntity } from 'src/allocation/allocation.entity';

Правильно:

import { AllocationEntity } from '../allocation/allocation.entity';

Надеюсь, этот ответ полезен, хотя вы не видите всей структуры каталогов.

...