如何在Cloud Functions(nodejs)中从HTTP请求的路径参数中获取id



我目前正在开发一个带有GCP云函数(nodejs(的无服务器应用程序。在下面的代码中,我可以根据请求的方法来分离行为,但是我不知道如何获取路径参数的id。

例如,如果我想检索一个用户,路径将是/users/:id。我想检索路径中的id并搜索DB,但我被卡住了,因为我无法检索id。(PUT和DELETE也是(有人知道这件事吗?

我以为我可以用req.params.id得到它,但我想不行。。。。

import type {HttpFunction} from '@google-cloud/functions-framework/build/src/functions';
export const httpServer: HttpFunction = (req, res) => {
const path = req.path;
switch(path) {
case '/users' :
handleUsers(req, res);
break;
default: 
res.status(200).send('Server is working');
}
};
const handleUsers: HttpFunction = (req, res) => {
if (req.method === 'GET') {
res.status(200).send('Listing users...');
} else if (req.method === 'POST') {
res.status(201).send('Creating User...')
} else if (req.method === 'PUT') {
res.status(201).send('Updating User...')
} else if (req.method === 'DELETE') {
res.status(201).send('Delating User...')
} else {
res.status(404);
}
}

export const helloWorld: HttpFunction = (req, res) => {
res.send('Hello, World');
};

还有一个问题。

例如,如果路径为",则不会调用handleUsers/用户/1";在目前的swich声明中。所以我们也想解决这个问题。

此外,在未来,可能会出现类似"/用户/1/猪舍"。。。。

您需要使用request的Expressparams属性,但必须注意文档中详细说明的以下选项:当路由定义使用正则表达式时,"使用req.params[n]在阵列中提供捕获组,其中n是第n个捕获组";。

因此,以下内容应该有效:

req.params[0]


req.params实际返回{ '0': '...' }

相关内容

  • 没有找到相关文章

最新更新