【问题标题】:Error: listen EADDRINUSE when running a Node.js script错误:运行 Node.js 脚本时监听 EADDRINUSE
【发布时间】:2014-06-14 16:32:15
【问题描述】:

当我运行以下simpleJSON.js 脚本时,我得到了这个Error: listen EADDRINUSE

var http = require('http'),
    fs = require('fs');

function handle_incoming_request(req, res) {
    console.log("Incoming request: (" + req.method + ") " + req.url);

    load_album_list(function(err, albums) {
        if (err != null) {
            res.writeHead(503, { "Content-Type" : "application/json" });
            res.end(JSON.stringify({ error: "file_error", message: err.message }) + "\n");
            return;
        }

        res.writeHead(200, { "Content-Type" : "application/json" });
        res.end(JSON.stringify({ error: null, data: { albums: albums }}) + "\n");
    });
}

function load_album_list (callback) {
    fs.readdir('albums/', function (err, file_list) {
        callback(err, file_list);
    });
}

var s = http.createServer(handle_incoming_request);
s.listen(8080);  

这是我在终端中看到的完整错误:

$ node simpleJSON.js 

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:904:11)
    at Server._listen2 (net.js:1042:14)
    at listen (net.js:1064:10)
    at Server.listen (net.js:1138:5)
    at Object.<anonymous> (/home/max/dev/livelessons/photoApp/simpleJSON.js:26:3)
    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)
    at Function.Module.runMain (module.js:497:10)

这是我的目录结构:

$ tree
.
├── albums
│   ├── australia2012
│   │   ├── picture_01.jpg
│   │   ├── picture_02.jpg
│   │   ├── picture_03.jpg
│   │   ├── picture_04.jpg
│   │   ├── picture_05.jpg
│   │   ├── picture_06.jpg
│   │   └── picture_07.jpg
│   ├── italy2012
│   │   ├── picture_01.jpg
│   │   ├── picture_02.jpg
│   │   ├── picture_03.jpg
│   │   ├── picture_04.jpg
│   │   ├── picture_05.jpg
│   │   ├── picture_06.jpg
│   │   └── picture_07.jpg
│   └── japan2010
│       ├── picture_01.jpg
│       ├── picture_02.jpg
│       ├── picture_03.jpg
│       ├── picture_04.jpg
│       ├── picture_05.jpg
│       ├── picture_06.jpg
│       └── picture_07.jpg
└── simpleJSON.js

4 directories, 22 files

【问题讨论】:

  • 这个错误意味着另一个进程已经在监听端口8080,并且Node也不能监听它。如果可以的话,您要么需要停止正在使用它的进程,要么选择另一个未使用的端口。
  • nodejs Error: listen EADDRINUSEothers 的可能重复项。
  • 是的,你是对的。谢谢。希望我能结束这个问题。

标签: javascript node.js fs


【解决方案1】:

杀死8080端口的运行进程并重启节点服务器。 这是因为您的 8080 端口已经在其他进程中忙碌。

【讨论】:

    【解决方案2】:

    以前有过吗?可能还有剩余进程连接到端口 8080。尝试更改端口号,看看是否有问题。

    【讨论】:

    • 呃。我有另一个节点进程正在运行。
    • 所以,我重新启动了 VM 实例,它运行良好。我想知道是否有任何方法可以停止连接的过程。做ps不是enuf。
    猜你喜欢
    • 1970-01-01
    • 2014-01-17
    • 2016-07-12
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 2018-12-24
    • 1970-01-01
    相关资源
    最近更新 更多