Я знаю, что мой вопрос повторяется. Пожалуйста, прочитайте вопрос полностью, прежде чем отмечать его как дубликат или что-то еще.При перезапуске приложения Node.Js вызывает ошибку EADDRINUSE
Я изучаю node.js для создания отдыха api &, отлично справляясь с этим. Все шло гладко, пока я не нашел эту ошибку (EADDRINUSE) при перезагрузке приложения. Этот вопрос есть мои драгоценные часы, но все еще не в состоянии найти правильное решение.
Если приложение работает в первый раз, он запускается плавно с любым изменением порта по какой-либо причине, мы останавливаем или перезапускаем это сообщение об ошибке, когда оно выдается с сервера. Многие из них предложили просто изменить порт, все работает нормально, и я согласен с ними. Но когда сервер работает &, который используется по всему миру, вы не можете изменить порт для перезапуска.
Добавление фрагмента моего кода.
app.js
var express = require('express'); // call express
var app = express(); // define our app using express
var bodyParser = require('body-parser');
var config = require('./Config/config.js');
var api = require('./apis/api');
// configure app to use bodyParser()
// this will let us get the data from a POST
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// ROUTES FOR OUR API
// =============================================================================
var router = express.Router(); // get an instance of the express Router
app.all('/api/write/'+config.WRITE_API_VERSION+'/:apiName', function (req, res) {
api.handle.apply(null, ['write', req.method.toLowerCase(), req.params.apiName, req, res]);
console.log("in api end1"+req.body);
});
app.all('/api/read/'+config.READ_API_VERSION+'/:apiName', function (req, res) {
api.handle.apply(null, ['read', req.method.toLowerCase(), req.params.apiName, req, res]);
console.log("in api end2");
});
app.use(function (req, res, next) {
res.contentType('application/json');
next();
});
// more routes for our API will happen here
// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api
app.use('/api', router);
// START THE SERVER
// =============================================================================
app.listen(config.PORT);
console.log('Magic happens on port ' + config.PORT);
config.js
var configs = {
ENVIRONMENT: "development",
READ_API_VERSION: "v1.0",
WRITE_API_VERSION: "v1.0",
PORT: 8080
}
Object.freeze(configs);
module.exports = configs;
Package.json
"scripts": {
"start": "node app.js"
}
Сообщение об ошибке
node app.js
Magic happens on port 8080
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1039:14)
at listen (net.js:1061:10)
at Server.listen (net.js:1135:5)
at EventEmitter.listen (/home/ubuntu/vcare_backend/VCare/node_modules/express/lib/application.js:617:24)
at Object.<anonymous> (/home/ubuntu/vcare_backend/VCare/app.js:47:5)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
После выполнения команды Sudo NetStat -plnt
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 3277/node
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1073/sshd
tcp6 0 0 :::22 :::* LISTEN 1073/sshd
Что происходит на линии 47 app.js? –
Как вы начинаете заявку? –
@AdrianLynch, запустив узел app.js command @ line 47, прослушивает порт 8080 – Anand