在 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
我希望能够在本地主机端口上完成获取请求。完整的 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