NestJS, TypeORM, не может получить данные - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь начать работу с NestJS , который использует TypeORM.

Я подключился к базе данных.По крайней мере, я думаю, что у меня получилось, потому что я получал много ошибок, и после достаточной настройки конфига ошибки исчезли, и соединение оказалось успешным.

Так что теперь я хочу получить любой битданные только для начала.

В базе данных есть таблица с именем RESULT_PAGE, поэтому я просто хочу извлечь любую запись из нее.Вот что я пробовал:

result-page.entity.ts

import { Entity, PrimaryColumn, Column } from "typeorm";

@Entity()
export class ResultPage {
    @PrimaryColumn()
    result_page_id: number;

    @Column({ length: 1 })
    approval: string;

    @Column({ length: 1})
    manually_uploaded: string;
}

result-page.controller.ts

import { Controller, Get, Request } from '@nestjs/common';
import { ResultPageService } from './result-page.service';

@Controller('result-page')
export class ResultPageController {
    constructor(
        private resultPageService: ResultPageService
    ) { }
  @Get('get-all')
  getProfile() {
    return this.resultPageService.findAll();
  }
}

result-page.service.ts

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { ResultPage } from './result-page.entity';

@Injectable()
export class ResultPageService {
  constructor(
    @InjectRepository(ResultPage)
    private readonly resultPageRepository: Repository<ResultPage>,
  ) {}

  findAll(): Promise<ResultPage[]> {
    return this.resultPageRepository.find();
  }
}

Если я отредактирую службу так, чтобы она выглядела следующим образом:

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { ResultPage } from './result-page.entity';

@Injectable()
export class ResultPageService {
  constructor(
    @InjectRepository(ResultPage)
    private readonly resultPageRepository: Repository<ResultPage>,
  ) {}

  findAll(): Promise<string> {
    return new Promise((resolve, reject) => { resolve('hello world') })
    // return this.resultPageRepository.find();
  }
}

, тогда яполучить 'привет мир', так что, безусловно, таблица RESULT_PAGE не подключена

В AppModule я загружаю такие объекты, как это

const typeOrmModuleOptions: TypeOrmModuleOptions = {
  ...
  entities: [__dirname + '/**/*.entity{.ts,.js}'],
  synchronize: true
}

Я уверен, чтоЯ делаю какую-то абсолютную ошибку нуба, поэтому, если кто-то сможет мне здесь помочь, это будет с благодарностью.Я довольно плохо знаком с базами данных и API, поэтому любая информация очень поможет.ТИА

1 Ответ

0 голосов
/ 29 сентября 2019

Немного запутанный вопрос.Я скучаю по ошибке и конфигурации базы данных.

result_page против RESULT_PAGE: имя таблицы

в linux / unix имена таблиц чувствительны к регистру, поэтому вы должны установить это в аннотации

@Entity({name: 'RESULT_PAGE'})

Пожалуйста, дайте некоторые детали, чтобы найти основную причину, если это не так.

...