更改 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 作为我的测试文件的名称。所以错误在命令行窗口中。 你想监听哪个端口?试试几个常见的,比如81
和8080
.. 是否还会出现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 监听端口的主要内容,如果未能解决你的问题,请参考以下文章