我对这些东西很新,并尝试制作一些快速应用
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
我看到了' ok'。
当我尝试
时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
问题是:为什么它会监听所有接口而不仅仅是localhost?
操作系统是linux mint 17,没有任何口哨。
答案 0 :(得分:48)
答案 1 :(得分:17)
From the documentation:app.listen(port, [hostname], [backlog], [callback])
绑定并侦听指定主机和端口上的连接。此方法与Node的http.Server.listen()。
相同
var express = require('express');
var app = express();
app.listen(3000, '0.0.0.0');
答案 2 :(得分:0)
文档:app.listen([port[, host[, backlog]]][, callback])
示例:
const express = require('express');
const app = express();
app.listen('9000','0.0.0.0',()=>{
console.log("server is listening on 9000 port");
})
注意:0.0.0.0被指定为主机,以便从外部接口访问