Я работаю над учебником для слабого бота, который запускает сервер express и работает одновременно, nodemon и ngrok.
Проблема, с которой я сталкиваюсь:
Ошибка: прослушивание EADDRINUSE: адрес уже используется ::: 5000
Я думаю, что ошибка происходит потому что nodemon повторно запускает express, когда происходит обновление. index.js
:
const server = app.listen(process.env.PORT || 5000, () => {
console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});
Я пробежал несколько кроличьих ям, которые включают родительские и дочерние «процессы» (https://dev.to/kyrelldixon/how-to-setup-an-express-js-server-in-node-js-56hp)
И / или это похоже, это может быть какая-то ошибка из-за обновления (https://github.com/remy/nodemon/issues/1025)
Я даже думал о добавлении какого-то обратного вызова в .listen
, поэтому приложение проверяет, является ли или не работает порт (http://expressjs.com/en/5x/api.html#app .listen_path_callback )
Но, в конечном счете, не уверен, как выяснить проблему. Кто-нибудь может дать какое-нибудь руководство?
мои настройки:
npm -v
1.5.0
node -v
v10.16.3
nodemon -v
v2.0.2
express -v
v4.16.0