У меня есть экспресс-сервер с одним маршрутом. Когда я вызываю этот маршрут в своем браузере, я могу получать данные, отправленные моим сервером. Однако, когда я пытаюсь вызвать этот маршрут из скрипта с помощью простой выборки узла, у меня есть ответ, но мой маршрут не вызывается (не извлекаются данные). Я объясняю :
Вот код моего экспресс-сервера:
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);
, но никогда не получаю результатов.
Кто-нибудь знает, где проблема?