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

Get request with query string in express

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

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

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

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

给出你的第二个例子:

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