更改 Node.js 监听端口

Posted

技术标签:

【中文标题】更改 Node.js 监听端口【英文标题】:Changing Node.js listening port 【发布时间】:2012-08-24 06:13:18 【问题描述】:

我刚刚在 Windows 上安装了 node.js。我有这个不运行的简单代码:

我得到: 错误:监听 EADDRINUSE

是否有配置文件告诉 node.js 监听特定端口?

问题是我已经让 Apache 监听端口 80。

编辑:

var http = require('http'); 
var url = require('url'); 

http.createServer(function (req, res)  
 console.log("Request: " + req.method + " to " + req.url); 
 res.writeHead(200, "OK"); 
 res.write("<h1>Hello</h1>Node.js is working"); 
 res.end(); 
).listen(5454); 
console.log("Ready on port 5454");

【问题讨论】:

var http = require('http'); var url = 需要('url'); http.createServer(function (req, res) console.log("请求: " + req.method + " to " + req.url); res.writeHead(200, "OK"); res.write("你好Node.js 正在工作"); res.end(); ).listen(5454); console.log("5454 端口就绪"); 【参考方案1】:

除非您create one yourself,否则没有配置文件。但是,端口是listen() 函数的参数。例如,监听 8124 端口:

var http = require('http');
http.createServer(function (req, res) 
  res.writeHead(200, 'Content-Type': 'text/plain');
  res.end('Hello World\n');
).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

如果您在查找打开的端口时遇到问题,可以转到命令行并键入:

netstat -ano

查看每个适配器正在使用的所有端口的列表。

【讨论】:

我关注的 tut 说首先进入 DOS 命令行并输入 node t.js t.js 作为我的测试文件的名称。所以错误在命令行窗口中。 你想监听哪个端口?试试几个常见的,比如818080.. 是否还会出现EADDRINUSE 错误? 麦克谢谢。我使用上面的代码和 8124 作为端口,但关键是将我的测试文件放在与 nodejs 相同的目录中,并且相对于 dos 提示位于同一目录中。 我在 app.js 的末尾添加了这些行,但它一直在监听 1337 端口【参考方案2】:

你可以从http://nodejs.org/获取nodejs配置 您需要记住的重要一点是它在文件 app.js 中的配置,其中包括端口号主机和其他设置,这些设置对我有用

后端设置 = “方案”:“https / http”, "host":"您的网站网址", "port":49165, //端口号 'sslKeyPath': '密钥路径', 'sslCertPath': 'SSL 证书路径', 'sslCAPath': '', "资源":"/socket.io", "baseAuthPath": '/nodejs/', "publishUrl":"发布", "服务密钥":"", “后端”: “端口”:443, "scheme": 'https / http', //无论你的网站方案是什么 "主机":"主机名", "messagePath":"/nodejs/message/", “clientsCanWriteToChannels”:假, “clientsCanWriteToClients”:假, “扩展”:“”, “调试”:假, "addUserToChannelUrl": 'user/channel/add/:channel/:uid', "publishMessageToContentChannelUrl": '内容/令牌/消息', “运输”:[“网络套接字”, “闪光灯插座”, "html文件", “xhr 轮询”, “jsonp 轮询”], “jsMinification”:真, “jsEtag”:真, "logLevel":1;

如果您收到“错误:侦听 EADDRINUSE”,请更改端口号,即这里我使用“49165”,以便您可以使用其他端口,例如 49170 或其他端口。 对此可以参考以下文章http://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-shared-hosting-accounts

【讨论】:

如何从服务器端更改node js应用端口?【参考方案3】:

我通常在app.js文件中手动设置我正在监听的端口(假设你使用的是express.js

var server = app.listen(8080, function() 
    console.log('Ready on port %d', server.address().port);
);

这会将Ready on port 8080 记录到您的控制台。

【讨论】:

以上是关于更改 Node.js 监听端口的主要内容,如果未能解决你的问题,请参考以下文章

错误:在监听端口 444/443 时监听 EACCES 0.0.0.0:444 node.js

node.js集群模块如何允许多个子进程监听同一个端口?

Node.js 监听 MongoDB 变化

Node.JS 应用程序未侦听分配的端口

Node.js连接本地Docker中的Redis

node.js调试入门