我对这些东西很陌生,正在尝试制作一些快速应用程序
var express = require('express');
var app = express();
app.listen(3000, function(err) {
if(err){
console.log(err);
} else {
console.log("listen:3000");
}
});
//something useful
app.get('*', function(req, res) {
res.status(200).send('ok')
});
当我使用命令启动服务器时:
node server.js
一切顺利。
我在控制台上看到
listen:3000
当我尝试
curl http://localhost:3000
我看到’好的’。
当我尝试
telnet localhost
我懂了
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'
但是当我尝试
netstat -na | grep :3000
我懂了
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN
问题是:为什么它监听所有接口而不是只监听本地主机?
操作系统是 linux mint 17,没有任何提示。
原文由 Pavel L 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您在调用 app.listen 时未指定主机,服务器将在所有可用接口上运行,即在
0.0.0.0
您可以使用以下代码绑定IP地址
如果要在所有界面中运行服务器,请使用以下代码
或者