Похоже, вы неправильно настраиваете свой http-сервер и Express app
. Вы пытаетесь передать router
на простой http-сервер - это не сработает. Вам необходимо передать маршрутизатор на app.use()
.
. Измените это:
var express = require('express');
var http = require("http");
var app = express();
const routes = require('./routers');
//app.get('/', (req, res) => res.send('App is working'));
app.use('/', routes);
app.use('/api/idToken', routes);
http.createServer(routes).listen(5000, () => {
console.log("server up");
});
module.exports = {
app
};
на следующее:
var express = require('express');
var app = express();
const routes = require('./routers');
//app.get('/', (req, res) => res.send('App is working'));
app.use('/', routes);
app.use('/api/idToken', routes);
app.listen(5000, () => {
console.log("server up");
});
module.exports = {
app
};
Ключ в том, что app
объект, НЕ объект router
необходимо передавать на http-сервер. В этом измененном коде мы используем app.listen()
для создания сервера, который делает это для нас автоматически. В своем исходном коде вы могли бы сделать:
http.createServer(app).listen(...)
Передача нот app
вместо router
. Но я предпочитаю просто использовать app.listen()
, который предназначен для этого как ярлык кодирования (он создает объект http-сервера для вас).
Кроме того, это выглядит подозрительно:
app.use('/', routes);
app.use('/api/idToken', routes);
Потому что вы делаете ту же самую функциональность присутствующей в двух разных местах URL (если это не то, что вы странным образом намеревались). Технически это можно сделать, но это очень необычно, поэтому мне интересно, действительно ли это то, что вы намеревались.