Я работаю над электронным приложением с express веб-сервером в бэкэнде, сервер запускается и работает в скрытом окне браузера и контролируется системой электронного IP C. Приложение отлично работает на Windows, поэтому сейчас я тестирую его на Linux (Ubuntu 18.04.4). Это код процедуры запуска сервера:
/* other stuff */
return new Promise((resolve, reject)=>{
if(this.ip==undefined)
this.ip = "127.0.0.1"
this.server = http.createServer(app)
this.server.listen(this.port, this.ip , () => {
var host = this.server.address().address;
var port = this.server.address().port;
console.log('running at http://' + host + ':' + port)
resolve("ok")
});
})
Весь код заключен внутри функции-прототипа, переменная this.port
- это порт сервера (я использую 9909) и this.ip
- это локальный IP-адрес машины (например, 192.168.1.19). Функция выполняется без ошибок, вызывается обратный вызов, выводится running at http://192.168.1.19:9909
и разрешается Promise. На Windows это работает нормально, и когда я go с браузером и набираю http://192.168.1.19:9909
, возвращает {message: Ok}
из-за этого express код маршрутизации:
app.get("/", (req, res, next) => {
console.log("TEST REQUEST")
res.json({"message":"Ok"})
});
Вместо этого на Ubuntu браузер не загрузить сообщение, но ждать в бесконечном l oop, но код выполняется без ошибок. Я безуспешно пытаюсь запустить электрон в режиме root, порт открыт в брандмауэре. Я также пытаюсь запустить приложение basi c express, созданное с помощью express -generator, и оно без проблем работает через тот же порт. Заранее спасибо и извините за мой плохой Engli sh