2012-04-20 27 views
7

Làm cách nào để nhận URL ứng dụng web của tôi trong Node.js? Ý tôi là nếu url cơ sở trang web của tôi là http://localhost:8080/MyApp Làm cách nào để nhận được?Nhận URL cơ sở ứng dụng web của tôi trong JavaScript

Cảm ơn,

+0

thông qua một trình duyệt web? Ý bạn là làm sao tôi có được nó? – ControlAltDel

+0

Không, tôi đang sử dụng node.js. Vì vậy, tôi cần nó ở phía máy chủ –

+0

bạn có nghĩa là bạn muốn thực hiện một yêu cầu http từ nút? nhìn vào thư viện http và http.req – ControlAltDel

Trả lời

20

Bạn phải kết nối 'url' mô-đun

var http = require('http'); 
var url = require('url') ; 

http.createServer(function (req, res) { 
    var hostname = req.headers.host; // hostname = 'localhost:8080' 
    var pathname = url.parse(req.url).pathname; // pathname = '/MyApp' 
    console.log('http://' + hostname + pathname); 

    res.writeHead(200); 
    res.end(); 
}).listen(8080); 

UPD:

Trong Node.js v8 mô-đun url có được API mới để làm việc với URL. Xem documentation:

Lưu ý: Mặc dù API cũ không được dùng nữa, nó chỉ được duy trì để tương thích ngược với các ứng dụng hiện có. Mã ứng dụng mới nên sử dụng API WHATWG.

+5

req.headers có thể được giả mạo bởi người dùng thực hiện yêu cầu, hãy cẩn thận khi tin tưởng nó. –

0

Để nhận chi tiết url trong ứng dụng nút của bạn. Bạn phải sử dụng mô-đun URL. mô-đun URL sẽ chia địa chỉ web của bạn thành những phần có thể đọc được

Tiếp theo tôi đã đưa mã

var url = require('url'); 
var adr = 'http://localhost:8080/default.htm?year=2017&month=february'; 
var q = url.parse(adr, true); 

console.log(q.host); //returns 'localhost:8080' 
console.log(q.pathname); //returns '/default.htm' 
console.log(q.search); //returns '?year=2017&month=february' 

var qdata = q.query; //returns an object: { year: 2017, month: 'february' } 
console.log(qdata.month); //returns 'february'`enter code here` 

Để tìm hiểu thêm về mô-đun URL mà bạn có thể truy cập https://nodejs.org/api/url.html

Các vấn đề liên quan