使用节点js从url中获取变量[重复]

Posted

技术标签:

【中文标题】使用节点js从url中获取变量[重复]【英文标题】:get variable out of url using node js [duplicate] 【发布时间】:2015-06-07 14:58:18 【问题描述】:

我在 node.js 中编写了一个简单的 Web 服务器,其中包含 4 个模块: index.js, server.js, requestHandler.js router.js

//index.js:
var server = require('./server.js');
var router = require('./router.js');
var requestHandlers = require('./requestHandlers.js');

var handle = ;
handle['/id'] = requestHandlers.getID;

server.start(router.route, handle);


//server.js
var http = require('http')
var url = require('url')

function start(route, handle)
  function onRequest(request, response) 
    var pathname = url.parse(request.url).pathname;
    console.log('Request for ' + pathname + ' received');

    request.setEncoding('utf-8');

    route(handle, pathname, response);
  

  http.createServer(onRequest).listen(8000);
  console.log("server started");


exports.start = start


//requestHandlers.js
var exec = require('child_process').exec;
var querystring = require('querystring');

function getID(response,pathname) 
  console.log('Request handler start was called.');
  console.log(pathname);
  var body = '<html>'+
  '<head>'+
  '<meta http-equiv="Content-Type" content="text/html; '+
  'charset=UTF-8" />'+
  '</head>'+
  '<body>'+
  '<h1> Hello Dude <\h1>'
  '</body>'+
  '</html>';

  response.writeHead(200, 'Content-Type':'text/html');
  response.write(body);
  response.end();

exports.getID = getID;


//router.js
function route(handle, pathname, response, postdata) 

  console.log('About to route a request for ' + pathname);

  if(typeof handle[pathname] === 'function') 
    return handle[pathname](response, pathname);
   else 
    console.log('No request handler found for ' + pathname);
    response.writeHead(404, 'Content-Type': 'text/plain');
    response.write('404 Not Found');
    response.end();
  


exports.route = route;

我现在要做的是在我的请求 url 中传递一些变量,如下所示:some.url.com:8000/id=1d2d3d4d?num=123?foo=bar

这样我就可以将变量的值放入我的代码中并继续使用它们。

除了获取整个路径名并针对? 分隔符或id,num,foo 标签进行分析之外,还有什么更简单的方法吗?

【问题讨论】:

检查这个问题:***.com/questions/6912584/… 请注意,在您的require 调用末尾没有必要使用“.js”。这是暗示的。 【参考方案1】:

你可以使用 url.parse - from the node docs

【讨论】:

以上是关于使用节点js从url中获取变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

express 无法从 url 获取查询参数 [重复]

如何从 HttpServletRequest 获取请求 url [重复]

使用 JS 获取 URL 参数 [重复]

Node.js 和数据库变量中的回调 [重复]

在JS中获取没有值的URL参数[重复]

如何从函数获取数据到变量[重复]