Sono molto nuovo per questa roba, e cercando di fare qualche app espressoserver delle app express. Ascolto tutti Interfacce invece di localhost solo
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')
});
quando ho iniziato a server:
node server.js
tutto va bene, ho vedo in console
listen:3000
e quando provo
curl http://localhost:3000
Vedo "ok". quando provo
telnet localhost
vedo
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'
ma quando provo
netstat -na | grep :3000
vedo
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN
la domanda è: perché ascoltare tutte le interfacce, invece di solo localhost? Sistema è Linux Mint 17 senza fischi
[La fine manuale] (https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback) afferma: _ "Se il nome viene omesso, il server accetterà connessioni su qualsiasi indirizzo IPv6 (: :) quando IPv6 è disponibile, o qualsiasi indirizzo IPv4 (0.0.0.0) altrimenti "_. – robertklep
Grazie. è un altro segno di "Explicit is better than implicit (c)", penso. – d2048
Dato che accettare connessioni dal mondo esterno è una premessa di base per un server, l'ascolto di tutte le interfacce (al contrario di loopback) sembra essere un valore predefinito per me :-) – robertklep