如何在Node.js的Express.js中获取GET(查询字符串)变量?

我们是否可以在Node.js中的查询字符串中获取变量,就像我们在PHP中的$_GET中获取它们一样?

我知道在Node.js中我们可以在请求中获取URL。 有没有一种方法来获取查询字符串参数?


是的,您可以访问req.url并将内置url模块访问为url.parse手动:

var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;

但是,在expressjs中它已经为您完成了,您可以简单地使用req.query:

var id = req.query.id; // $_GET["id"]

既然你已经在你的标签中提到了Express.js,下面是一个特定于Express的答案:使用req.query。 例如

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('id: ' + req.query.id);
});

app.listen(3000);

在Express中,使用req.query

req.params只获取路由参数,而不是查询字符串参数。 查看快递或航行文件:

(req.params)检查路由参数,例如:/ user /:id

(req.query)检查查询字符串参数,例如:?id = 12检查urlencoded body params

(req.body),ex:id = 12要使用urlencoded请求体,req.body应该是一个对象。 这可以通过使用_express.bodyParser中间件来完成。

也就是说,大多数情况下,您希望获取参数的值,而不管其来源。 在这种情况下,使用req.param('foo')

无论变量是在路由参数,查询字符串还是编码的请求主体中,都会返回该参数的值。

注意 - 如果你想要获得所有三种类型的请求参数(类似于PHP的$_REQUEST )的交集,你只需要将这些参数合并到一起 - 这就是我如何在Sails中进行设置。 请记住,路径/路径参数对象( req.params )具有数组属性,因此顺序很重要(尽管这可能会在Express 4中更改)

链接地址: http://www.djcxy.com/p/22757.html

上一篇: How to get GET (query string) variables in Express.js on Node.js?

下一篇: jsTree contextmenu not presenting on tree