私はこのようなものについては非常に新しく、いくつかのエクスプレスアプリを作成しようとしています
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
問題は、なぜローカルホストだけではなく、すべてのインターフェイスをリッスンするのですか?
OSは、なしのlinux mint 17です。
使用する場合は、 app.listen
、利用可能なすべてのインターフェイスでサーバーが実行されます(0.0.0.0
)
次のコードを使用してIPアドレスをバインドできます
app.listen(3000, '127.0.0.1');
ドキュメントから :app.listen(port, [hostname], [backlog], [callback])
指定されたホストとポートで接続をバインドしてリッスンします。このメソッドは、ノードのhttp.Server.listen()と同じです。
var express = require('express');
var app = express();
app.listen(3000, '0.0.0.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