如何使用 fastify 发送多个 URL 参数?
How to use fastify to send multiple URL parameters?
我已经使用 fastify 声明了如下路由:
const apiService = require('./apiService');
try {
server.get('/api/status/*', apiService);
} catch (err) {
console.log(err);
process.exit(1);
}
我的api服务定义如下:
async function entryFunc(request, response) {
try {
console.log("Params are ");
console.log(request.params);
} catch (err) {
console.log(err);
}
}
我在调用 api 时得到以下输出 http://localhost:3002/api/status/1/2
:
Params are:
{ '*': '1/2' }
url 可以有 infinite number of parth params
,这就是为什么我在我的路线中使用 wildcard
我想修改 entryFunc(request, response)
以便将值 1
和 2
存储在一个数组中,当我打印 array[0]
时,我应该得到值 1
Fasify 使用 find-my-way
作为路由器并支持所有功能。
如果你总是有 2 个路径参数,你应该将你的路由定义为:
server.get('/api/status/:one/:two', apiService);
然后你的 params
会像:
// /api/status/hello/world
{
"one": "hello",
"two": "world"
}
您可以通过 Object.values(request.params) // ["hello", "world"]
或 request.params['*'].split('/')
简单地转换为数组
我已经使用 fastify 声明了如下路由:
const apiService = require('./apiService');
try {
server.get('/api/status/*', apiService);
} catch (err) {
console.log(err);
process.exit(1);
}
我的api服务定义如下:
async function entryFunc(request, response) {
try {
console.log("Params are ");
console.log(request.params);
} catch (err) {
console.log(err);
}
}
我在调用 api 时得到以下输出 http://localhost:3002/api/status/1/2
:
Params are:
{ '*': '1/2' }
url 可以有 infinite number of parth params
,这就是为什么我在我的路线中使用 wildcard
我想修改 entryFunc(request, response)
以便将值 1
和 2
存储在一个数组中,当我打印 array[0]
时,我应该得到值 1
Fasify 使用 find-my-way
作为路由器并支持所有功能。
如果你总是有 2 个路径参数,你应该将你的路由定义为:
server.get('/api/status/:one/:two', apiService);
然后你的 params
会像:
// /api/status/hello/world
{
"one": "hello",
"two": "world"
}
您可以通过 Object.values(request.params) // ["hello", "world"]
或 request.params['*'].split('/')