使用带有 GET 的查询字符串在本地测试 Firebase HTTP Cloud 函数
Testing Firebase HTTP Cloud functions locally using a query string with GET
我在 Firebase 上有一个 HTTP 云功能。我可以使用没有查询字符串的 GET 方法成功调用此 tutorial 之后的函数。
> test.get()
我的问题是如何使用查询字符串测试 HTTP 函数?如何将它传递给调用?
我在 shell
上试过了
> test.get({"name":"test"})
在我的 index.js 上,我尝试打印名称:
exports.test= functions.https.onRequest((req, res) => {
console.log(req.query.name);
});
没有成功,返回 undefined
。
您引用的文档是这样说的:
For invoking HTTPS functions in the shell, usage is the same as the request NPM module, but replace request with the name of the function you want to emulate.
请注意 request 模块文档中的 link。您将不得不使用它的 API 来发出测试请求。在该 linked 页面上,您正在寻找的更具体的文档位于此处:
https://www.npmjs.com/package/request#requestoptions-callback
您要注意的是第一个参数 "options" 的属性。这个对象有很多影响请求的潜在属性。要发送查询字符串,您应该使用 qs
属性,如下所示:
test.get({ qs:{ name:"foo" } })
这会将测试调用的 name
查询字符串参数设置为 foo
。
我在 Firebase 上有一个 HTTP 云功能。我可以使用没有查询字符串的 GET 方法成功调用此 tutorial 之后的函数。
> test.get()
我的问题是如何使用查询字符串测试 HTTP 函数?如何将它传递给调用?
我在 shell
上试过了> test.get({"name":"test"})
在我的 index.js 上,我尝试打印名称:
exports.test= functions.https.onRequest((req, res) => {
console.log(req.query.name);
});
没有成功,返回 undefined
。
您引用的文档是这样说的:
For invoking HTTPS functions in the shell, usage is the same as the request NPM module, but replace request with the name of the function you want to emulate.
请注意 request 模块文档中的 link。您将不得不使用它的 API 来发出测试请求。在该 linked 页面上,您正在寻找的更具体的文档位于此处:
https://www.npmjs.com/package/request#requestoptions-callback
您要注意的是第一个参数 "options" 的属性。这个对象有很多影响请求的潜在属性。要发送查询字符串,您应该使用 qs
属性,如下所示:
test.get({ qs:{ name:"foo" } })
这会将测试调用的 name
查询字符串参数设置为 foo
。