Nếu tôi nhớ chính xác nó được sử dụng để hiển thị "localhost" một vài ngày trước. Tôi không chắc chắn những gì đã thay đổi mà làm cho server.address() địa chỉ trở lại đôi dấu hai chấm (:) thay vào đó. Tôi đọc ở đây rằng nó trả về một địa chỉ IPv6 (:) nếu nó có sẵn nhưng nó bị vô hiệu hóa trên máy tính của tôi. https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callbackNode.js server.address() địa chỉ trả về ::
Trả lời
Như các tài liệu nói,
Bắt đầu chấp nhận các kết nối trên cổng và tên máy cụ thể. Nếu tên máy chủ bị bỏ qua, máy chủ sẽ chấp nhận các kết nối trên bất kỳ địa chỉ IPv6 nào (:) khi IPv6 có sẵn hoặc bất kỳ địa chỉ IPv4 nào (0.0.0.0) nếu không. Giá trị cổng bằng 0 sẽ gán một cổng ngẫu nhiên.
Vì vậy, các mã sau đây sẽ in running at http://:::3456
:
var express = require('express');
var app = express();
var server = app.listen(3456, function() {
var host = server.address().address;
var port = server.address().port;
console.log('running at http://' + host + ':' + port)
});
Nhưng nếu bạn thêm một hostname rõ ràng:
var server = app.listen(3456, "127.0.0.1", function() {
Nó sẽ in những gì bạn muốn xem: running at http://127.0.0.1:3456
Ngoài ra bạn có thể kiến sử dụng some IP lib như được chỉ trong this answer
Trân trọng, Alexander
Các chỉ số IPv6 trong URL phải được bao quanh bởi các dấu ngoặc vuông, ví dụ: 'http: // [::]: 3456' –
Cảm ơn bạn bây giờ tôi đã hiểu nó tốt hơn. Những gì tôi vẫn không hiểu là lý do tại sao nó được lựa chọn IPv6 thay vì IPv4 mặc dù tôi đã vô hiệu hóa IPv6 trên máy tính của tôi? – Jake
@Jake Tôi không chắc chắn về việc tắt IPv6m nhưng điều này cũng xảy ra trong các phiên bản nút cũ (trong thực thể, 0,12) –
- 1. Dns.GetHostEntry trả về nhiều địa chỉ IP
- 2. địa chỉ khách hàng chỉ IP trả về cùng một địa chỉ mạng nội bộ
- 3. Chỉ định các trường được trả về trong Node.js/Waterline?
- 4. Sửa đổi địa chỉ trả về trên ngăn xếp
- 5. getHostAddress() trả về địa chỉ IP bị đảo ngược
- 6. MPMediaQuery chỉ trả về các mục địa phương
- 7. Trình mã hóa địa lý Android trả về địa chỉ trống
- 8. remote_addr không trả lại địa chỉ IPv4
- 9. Nginx - cách cấu hình địa chỉ IP? (chỉ trả về 127.0.0.1)
- 10. PowerShell: Định dạng đầu ra Get-WmiObject chỉ trả về địa chỉ IP
- 11. Làm cách nào để đặt Đường dẫn trả về thành địa chỉ email ngoài địa chỉ người gửi bằng JavaMail?
- 12. Nhận địa chỉ MAC của máy khách trên node.js
- 13. javax.servlet.HttpServletRequest.getContentLength() trả về int chỉ
- 14. Chỉ mục không gian địa lý trong mongodb với node.js
- 15. Giới hạn Google Địa điểm tự động hoàn tất để chỉ trả lại địa chỉ
- 16. UdpClient nhận về địa chỉ quảng bá
- 17. Địa chỉ trả về GCC của chức năng gọi trong kiến trúc ARM
- 18. Số API trả về biểu đồ Facebook thay vì địa chỉ email
- 19. C "lỗi: hàm trả về địa chỉ của biến cục bộ"
- 20. Tại sao malloc (0) trả về một địa chỉ không null trong Windows?
- 21. Địa chỉ trả về mã vạch SIDT cho cấu trúc IDT không đúng định dạng
- 22. phpmailer: Trả lời chỉ sử dụng địa chỉ "Trả lời Tới"
- 23. người dân địa phương được trả về tự động xvalues
- 24. navigator.geolocation.watchPosition chỉ trả về mỗi 100 m
- 25. Mô tả để chỉ trả về ClassName?
- 26. get_home_url() chỉ trả về URL hiện tại
- 27. ArrayList indexOf() trả về chỉ mục sai?
- 28. Ngăn chặn ArrayList.Add() trả về chỉ mục
- 29. địa chỉ trở về của biến cục bộ trong C
- 30. Tìm hiểu về MIPS hội .Địa chỉ và bộ nhớ Địa chỉ
Tôi đã triển khai thành công: var host = server.address(). Address; host = (host == '::')? 'localhost': host; –