在express中获取查询字符串的请求

时间:2015-07-14 19:26:43

标签: json http url express module

我希望能够在本地主机端口上完成get请求。完整的网址应为" localhost:3000 / data / mydb.json?get = somefield"其中mydb.json可以是任何文件名,somefield是键。在我的app.js文件中,我的get请求如下所示:

app.get(' / data /:filename?get = somefield',routes.getdatabase);

无论我在路由文件中放入什么,它都无法在匹配此模式的任何类型的URL上完成获取请求。为了调试我删除了问号之后的所有内容(例如app.get(' / data /:filename,routes.getdatabase);)并且任何文件名都有效。是否需要一些模块才能使用此查询字符串语法,或者此get请求是否还有其他问题?

1 个答案:

答案 0 :(得分:1)

查询字符串不是路径路径的一部分。

鉴于你的第二个例子:

app.get('/data/:filename', routes.getdatabase);

您应该可以使用req.query.get作为查询参数。

<强> routes.js

exports.getdatabase = function(req, res, next) {
  console.log(req.params.filename);
  console.log(req.query.get);
  // Do some stuff
  return res.send(someResponse);
}

控制台(URI:/ data / someFile?get = cats):

someFile
cats