2015-11-05 30 views
0

我试图从URL中检索查询字符串参数。我正在使用node.js restify模块。在node.js中检索查询字符串参数

该URL看起来像这样;

http://127.0.0.1:7779/echo?UID=Trans001&FacebookID=ae67ea324&GetDetailType=FULL

提取的相关代码;

server.use(restify.bodyParser()); 

server.listen(7779, function() { 
    console.log('%s listening at %s', server.name, server.url); 
}); 

server.get('/echo/:message', function (req, res, next) { 
    console.log("req.params.UID:" + req.params.UID); 
    console.log("req.params.FacebookID:" + req.params.FacebookID); 
    console.log("req.params.GetDetailType" + req.params.GetDetailType); 

    var customers = [ 
     {name: 'Felix Jones', gender: 'M'}, 
     {name: 'Sam Wilson', gender: 'M'}, 
    ]; 
    res.send(200, customers); 

    return next(); 
}); 

如何可以将代码进行修改,这样req.params.UID和其它参数可以从URL http://127.0.0.1:7779/echo?UID=Trans001&FacebookID=ae67ea324&GetDetailType=FULL检索?

回答

1

使用req.query而不是req.params。你可以阅读关于它here

server.use(restify.bodyParser()); 
server.use(restify.queryParser()); 

server.listen(7779, function() { 
    console.log('%s listening at %s', server.name, server.url); 
}); 

server.get('/echo', function (req, res, next) { 
    console.log("req.query.UID:" + req.query.UID); 
    console.log("req.query.FacebookID:" + req.query.FacebookID); 
    console.log("req.query.GetDetailType" + req.query.GetDetailType); 

    var customers = [ 
     {name: 'Felix Jones', gender: 'M'}, 
     {name: 'Sam Wilson', gender: 'M'}, 
    ]; 
    res.send(200, customers); 

    return next(); 
}); 
+0

Upvoted。答案几乎是正确的。如果URL是http://127.0.0.1:7779/echo/?UID=Trans001&FacebookID=ae67ea324&GetDetailType=FULL ,则它可以工作当URL是http://127.0.0.1:7779/echo?UID=Trans001&FacebookID时它不起作用= ae67ea324&GetDetailType = FULL 请注意URL的'echo'部分略有不同。 – user781486

+0

我编辑了答案的小部分,以便它完全正确。请接受编辑。谢谢。 – user781486

+0

接受。谢谢。 –