如何使用Express解析查询字符串中的变量?

use*_*947 23 javascript request-object query-string express

我有一个请求发送到服务器:

"/stuff?a=a&b=b&c=c"
Run Code Online (Sandbox Code Playgroud)

使用express,我如何获得这些值?

我试过以下......

app.get( "/stuff?:a&:b&:c", function( req, res ){});
Run Code Online (Sandbox Code Playgroud)

......但它似乎没有认出路线.

在此先感谢您的帮助.

Dmi*_*kov 35

在路由中使用查询字符串不是一个好主意.

在Express逻辑中,您需要为"/ stuff"创建一个路径.查询字符串将在req.query.

  • 为此,Express明确指出"执行这些匹配时不考虑查询字符串" - http://expressjs.com/api.html (6认同)

Mar*_*rco 27

您可以直接声明您的路由/stuff,然后可以通过req.queryJSON对象访问查询参数.这是你的例子:

app.get("/stuff", function(req, res) {
    var a = req.query.a;
    ...
});
Run Code Online (Sandbox Code Playgroud)

在你的情况下,req.query等于:

{ a: 'a',
  b: 'b',
  c: 'c' }
Run Code Online (Sandbox Code Playgroud)

在Express'文档(4.x和3.x)中,您可以找到其他示例: Express - req.query.