我遇到了一个问题,在 Windows 10 上重新加载(ctrl + c,然后再次使用 node app
运行)基本 Node.js 服务器(尝试过 v0.12.0 和 v0.12.7)会导致服务器在重新加载之前挂起大约 20 秒。当使用 PM2 等工具监视我的服务器时,对文件进行任何更新后都会出错,并且日志显示 EADDRINUSE 错误。
我将其归结为最简单的示例(认为这可能是 Express 的问题),但 Node.js 文档中的基本示例仍然出现这种情况:
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(3030);
console.log('Server running at http://127.0.0.1:3030/');
我检查了端口 3030 上没有其他任何东西在运行。我还尝试了不同的端口号。只是 Node.js 进程似乎没有及时关闭并释放端口。我还尝试使用 ctrl+break,并捕获 SIGINT 并手动调用 process.exit()。我可以确认它捕获了信号,但它仍然按照描述挂起。
我在从 Windows 7 升级到 Windows 10 后不久第一次注意到这一点,之前没有遇到过问题,所以我认为这是最有可能的罪魁祸首。我有 Ubuntu 14.04 双启动,并且使用相同的代码没有任何问题。
最佳答案
我不再遇到我所描述的问题:这可能是我的设置所特有的问题,因为它没有在其他地方报告过。我已经更新到 Node 4.2.1 并安装了各种 Windows 更新,所以很难说最初的原因是什么。
关于javascript - 在 Windows 10 上重新运行 Node.js 服务器时出现 EADDRINUSE 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32425063/