使用JavaScript获取我的Web App基本URL

时间:2012-04-20 18:46:47

标签: javascript node.js

如何在Node.js中获取我的Web应用程序URL?我的意思是如果我的网站基本网址是http://localhost:8080/MyApp我怎么能得到它?

谢谢,

3 个答案:

答案 0 :(得分:25)

您必须连接'url'模块

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:

在Node.js v8中,url模块获取用于处理URL的新API。见documentation

  

注意:虽然Legacy API尚未弃用,但它仅用于向后兼容现有应用程序。新的应用程序代码应该使用WHATWG API。

答案 1 :(得分:1)

要获取类似http://localhost:8080/MyApp

的网址

我们应该使用:-

req.protocol+"://"+req.headers.host

答案 2 :(得分:-1)

获取节点应用中的网址详情。您必须使用URL模块。 URL模块会将您的网址拆分为可读部分

我已经给出了代码

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`

要了解有关URL模块的更多信息,请访问 https://nodejs.org/api/url.html