node.js - 使用 Express 检索多个 GET 参数

标签 node.js express

我尝试使用 Express 检索多个 GET 参数,但 req.params 始终为空。我不完全确定如何使用 Express 4 正确地做到这一点,因为答案差异很大,因为我猜 Express/Node.js 的新版本发生了很大变化。

这是我的 URL 调用:

http://localhost:3000/accounts/players?term=asddsa&_type=query&q=asddsa

http 状态码实际上是 200 所以这个地址确实存在。

这是我的路由器:

router.get('/players', function(req, res) {
    var searchTerm = req.term;
    console.log("Term: " + JSON.stringify(req.params));
    res.json({"result": "Account deleted"});
});

控制台日志输出为:

Term: {}

我尝试过不同的方法,例如:

router.get('/players/:term/:_type/:q', function(req, res) {

但这导致了 GET 请求的 404。

最佳答案

当您在“?”之后输入 url 参数时正如您所做的那样 - 参数将位于 req.query 而不是 req.params 下,如下所示:

router.get('/players', function(req, res) {
    var searchTerm = req.term;
    console.log("Term: " + JSON.stringify(req.query));
    res.json({"result": "Account deleted"});
});

如果您想改用参数 - 您的网址应如下所示:

http://localhost:3000/accounts/players/asddsa/query/asddsa

路由器功能可以按照您的尝试编写:

router.get('/players/:term/:_type/:q', function(req, res) {

关于node.js - 使用 Express 检索多个 GET 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37615375/

相关文章:

javascript - 如何在独立模式下调试 webdriverio?

json - 如何使用nodejs和mongo客户端更新保存在mongodb中的记录?

javascript - 如何访问通过函数传回的 Promise?

javascript - 为什么 Express.js 路由没有选择正确的路由?

javascript - 在 nodejs 身份验证中使用 Passport 替代 findById?

javascript - 循环遍历 mongodb 文档 id 数组并查询该 id 并将结果存储在新数组中给出空数组

javascript - Node.js/Express 项目结构

windows - Grunt.js 在使用 watch 任务时生成一个新的 Node 进程

node.js - Angular2 与 primeng 组件 Nativescript 问题

node.js - 创建客户端证书,将特定 ip 地址添加到证书