TypeError: Невозможно прочитать свойство 'unitService' из неопределенного - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть этот класс в TypeScript, и когда я вызываю this.unitService, я получаю сообщение об ошибке.

controller.ts

import { Request, Response } from "express";
import Unit from "../models/unit.model";
import Relation from "../models/relation.model";
import { TypeRelation } from "../models/typeralation.enum";
import { UnitService } from "../services/unit.service";

export class HomeController {
  unitService: UnitService = new UnitService();
  constructor() { }

  forceCreateUnit(req: Request, res: Response): void {
    const unit = "{ type: " + TypeRelation.USE + ", topUnit: new ObjectId(\"5adf231d85dded040f3f6d03\"), lowerUnit: new ObjectId(\"5adf231d85dded040f3f6d03\")}";
    this.unitService.prueba();
    res.send("OK");
  }
}

unit.service.ts

import Relation from "../models/relation.model";
import { TypeRelation } from "../models/typeralation.enum";
import { ObjectId } from "bson";

export class UnitService {
    constructor() {}
    async forceGenerate(unit: String) {
        const relation = new Relation(
            {
              type: TypeRelation.USE,
              topUnit: new ObjectId("5adf231d85dded040f3f6d03"),
              lowerUnit: new ObjectId("5adf231d85dded040f3f6d03")
            }
          );
          await relation.save();
    }
}

Однако, когда я добавляю new unitService() в forceCreateUnit(), это работает хорошо.Почему это так?

Я называю метод так:

const homeController: HomeController = new HomeController();

homeRoutes.get("/prueba", homeController.forceCreateUnit);

1 Ответ

0 голосов
/ 25 апреля 2018

TypeError: Невозможно прочитать свойство 'unitService' из неопределенного

У меня есть этот класс в TypeScript, и когда я вызываю this.unitService, я получаю ошибку.

this, следовательно, undefined.Проблема заключается в том, как вы звоните forceCreateUnit.

Попробуйте:

homeRoutes.get("/prueba", (req, res) => homeController.forceCreateUnit(req, res));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...