javascript - Hapijs 查询参数未定义

标签 javascript node.js https hapi.js query-string

我目前正在使用 hapi,我遇到了一个问题,我似乎找不到任何解决方案或以前提到过。当我发送以下请求时,只有我的第一个查询参数在 request.query 对象中。

curl -H "Content-Type: application/json" -X PUT https://localhost:3000/lists/{username}/{listname}?token='token'&resource_id='resource_id'

{}'' 中的项目替换为实际名称。

我的路线目前是这样写的

server.route({
    method: 'PUT',
    path: '/lists/{username}/{listname}',
    handler: function(request, reply) {
        const username = encodeURIComponent(request.params.username);
        const listname = encodeURIComponent(request.params.listname);
        const resource_id = request.query.resource_id;
        const token = request.query.token;
        console.log(request.query);
        verify(token, username, {callback}, listname, resource_id, reply);
    }
});

console.log 调用结果为

{ token: 'token' }

如果我执行 console.log(resource_id),我会在控制台中得到“undefined”。 hapi 的文档声明所有查询参数都应在 request.query 对象中找到。由于某种原因,这没有发生。我查看了 hapijs 文档,查看了我的 API 调用,还阅读了人们处理查询参数的示例。知道这里发生了什么吗?

最佳答案

问题出在你的 curl 命令上,而不是 HapiJS。

尝试运行 curl -H "Content-Type: application/json"-X PUT "https://localhost:3000/lists/{username}/{listname}?token=token&resource_id=resource_id"

它是查询字符串中被解释为命令结尾的符号。有关命令为何不起作用的解释,请参阅 this questions answer

关于javascript - Hapijs 查询参数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39198242/

相关文章:

node.js - Electron 应用程序的 Windows 文件夹快捷方式 - 获取该文件夹的路径?

java - 访问两个 Web 服务 HTTPS 和其他 HTTP 时出现代理问题

php - 使用 HTTPS 获取国家和城市

javascript - knockout.js 如何在 ko.computed 写入中取消 confirm() 后设置所选选项

Javascript:日期取决于字段规范顺序?真的吗?

javascript - 无法从 React.js 将图像发布到我的 API 路由

java - 如何向 Java SOAP 客户端提供证书?

javascript - eBay JavaScript API - 对象成员名称中的 @ 符号

Javascript 查找字符串是否以正斜杠结尾

javascript - Puppeteer Execution 上下文被破坏,很可能是因为导航