Экспресс-маршруты, не вызываемые с помощью node-fetch

У меня есть экспресс-сервер с одним маршрутом. Когда я вызываю этот маршрут в своем браузере, я могу получать данные, отправленные моим сервером. Однако, когда я пытаюсь вызвать этот маршрут из скрипта с помощью простой выборки узла, у меня есть ответ, но мой маршрут не вызывается (не извлекаются данные). Я объясняю :

Вот код моего экспресс-сервера:

App.ts

import express from "express";
import httpServer from "./httpServer";
import HttpRoutes from "./httpRoutes";

class BrokerServer {
  public httpServer!: express.Application;
  public httpRoutes!: HttpRoutes;

  constructor() {
    this.initHttpServer();
  }

  private initHttpServer(): void {
    this.httpServer = httpServer;
    this.httpRoutes = new HttpRoutes();
    this.httpRoutes.routes();
  }
}

new BrokerServer();

Сервер.ts

import express from "express";
import * as bodyParser from "body-parser";

class HttpServer {
  public HTTP_PORT: number = 9000;
  public server!: express.Application;

  constructor() {
    this.server = express();
    this.server.use(bodyParser.json());

    this.server.listen(this.HTTP_PORT, () => {
      console.log('Broker HTTP Server listening on port 9000');
    });
  }
}

export default new HttpServer().server;

И мои маршруты.ts

import httpServer from "./httpServer";

export default class HttpRoutes {
  public routes(): void {
    httpServer.get("/getNodes", (req, res) => {
      console.log("GET");
      res.status(200).send(JSON.stringify({ nodes: [] }));
    });
  }
}

Когда я запускаю свой сервер и перехожу по URL-адресу http://localhost:9000/getNodes, я вижу свой console.log('GET') . это не тот случай, когда я пытаюсь использовать node-fetch.

Вот мой небольшой скрипт:

const fetch = require('node-fetch');

console.log('launch fetch');

fetch('http://localhost:9000/getNodes')
.then(response => {
    console.log('response', response);
    return response.json()
})
.then(results => {
    console.log('results', results);
})
.catch(error => {
    console.log('error', error);
});

С помощью сценария я достигаю console.log('response', response);, но никогда не получаю результатов.

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


person onedkr    schedule 18.05.2020    source источник


Ответы (1)


Я нашел, почему это не сработало. Я использовал порт ramdom (порт 9000), который уже используется. Поменял порт работает...

person onedkr    schedule 18.05.2020