2015-11-27 16 views
5

Tôi rất mới cho công cụ này, và cố gắng để làm cho một số ứng dụng nhanhmáy chủ ứng dụng tốc hành. lắng nghe tất cả intefaces thay vì localhost chỉ

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

khi tôi bắt đầu máy chủ bằng cách:

node server.js 

mọi thứ diễn ra tốt đẹp, tôi thấy trong giao diện điều khiển

listen:3000 

và khi tôi cố gắng

curl http://localhost:3000 

Tôi thấy 'ok'. khi tôi cố gắng

telnet localhost 

tôi thấy

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

nhưng khi tôi cố gắng

netstat -na | grep :3000 

tôi thấy

tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 

câu hỏi là: tại sao nó nghe tất cả các giao diện thay vì chỉ localhost? hệ thống Linux Mint 17 mà không cần bất kỳ còi

+2

[Tài liệu hướng dẫn tốt] (https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback) khẳng định: _ "Nếu tên máy được bỏ qua, máy chủ sẽ chấp nhận kết nối trên bất kỳ địa chỉ IPv6 (: :) khi IPv6 khả dụng hoặc bất kỳ địa chỉ IPv4 nào (0.0.0.0) nếu không "_. – robertklep

+0

Cảm ơn. đó là một dấu hiệu của "Rõ ràng là tốt hơn so với tiềm ẩn (c)", tôi nghĩ. – d2048

+1

Cho rằng chấp nhận các kết nối từ thế giới bên ngoài là một tiền đề cơ bản cho một máy chủ, lắng nghe tất cả các giao diện (như trái ngược với loopback) có vẻ là một mặc định hợp lý với tôi :-) – robertklep

Trả lời

11

Bạn có thể gắn địa chỉ IP bằng cách sử dụng đoạn mã sau

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

Có. Bây giờ tôi biết. Thanx – d2048

1

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

liên kết và lắng nghe cho các kết nối trên máy chủ và cổng quy định . Phương thức này giống với http.Server.listen() của Node.

var express = require('express'); 
var app = express(); 
app.listen(3000, '0.0.0.0'); 
Các vấn đề liên quan