2015-11-27 9 views
5

ich für dieses Zeug bin sehr neu, und versuchen, einige express AppExpress-App-Server. hören alle intefaces statt localhost nur

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') 
}); 

, wenn ich starten Server zu machen:

node server.js 

geht alles in Ordnung, ich siehe in der Konsole

listen:3000 

und wenn ich versuche,

curl http://localhost:3000 

Ich sehe 'ok'. wenn ich

telnet localhost 

versuchen sehe ich

Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]' 

aber wenn ich versuche

netstat -na | grep :3000 

Ich sehe

tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 

die Frage ist: warum es alle Schnittstellen hören statt nur localhost? System ist Linux Mint 17 ohne Pfeifen

+2

[Das feine Handbuch] (https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback) heißt es: _ "Wenn der Hostname angegeben wird, wird der Server akzeptiert Verbindungen auf jeder IPv6-Adresse (: :) wenn IPv6 verfügbar ist, oder eine beliebige IPv4-Adresse (0.0.0.0), andernfalls "_. – robertklep

+0

Danke. Es ist ein weiteres Zeichen von "Explizit ist besser als implizit (c)", denke ich. – d2048

+1

Da das Annehmen von Verbindungen von der Außenwelt eine Grundvoraussetzung für einen Server ist, scheint mir das Hören aller Schnittstellen (im Gegensatz zum Loopback) ein vernünftiger Standard zu sein :-) – robertklep

Antwort

11

Sie können die IP-Adresse mit dem folgenden Code

app.listen(3000, '127.0.0.1'); 
+0

Ja. Jetzt weiß ich. Danke – d2048

1

From the documentation binden: app.listen(port, [hostname], [backlog], [callback])

Wird und wartet auf Verbindungen auf dem angegebenen Host und Port . Diese Methode ist identisch mit der http.Server.listen() von Node.

var express = require('express'); 
var app = express(); 
app.listen(3000, '0.0.0.0'); 
Verwandte Themen