Google云端平台HTTP函数是否支持路由参数?
这是一个比我更喜欢来这里的问题比较简单一些,但我一直在试图找到一个答案,并且我绝对不能 -Google云端平台HTTP函数是否支持路由参数?
Google Cloud Platform HTTP函数支持路由参数,在这里? http://expressjs.com/en/guide/routing.html#route-parameters
具体来说,我发现Google云平台HTTP函数似乎使用Express作为基础,但是我看到的所有函数都已经只是运行req和res参数,没有其他任何示例。我可以访问正文中的数据,但这不允许我从路由中提取参数,例如在传递给“/ users /:userId/books /:bookId”的请求中查找书签ID。我看不到如何将它们填充到req.params中,而无法指定路径的哪一部分与此处的名称相对应。
我知道我总是可以用另一种方式传递它们,但这样更清洁,更符合我们想要使用的设置,因此我希望尽可能使其工作。有没有办法做到这一点,我完全失踪或根本不支持?
你可以尝试modofun:https://modofun.js.org
它是基于请求路径上的多个操作的路由器,并且还支持自动参数从路径解析。
它将URL路径解析为操作名称和参数列表,这些参数被填充到req.params中,与使用正则表达式时的Express相同。所以,你可以做这样的事情:
var modofun = require('modofun')
exports.bookstore = modofun(
{
/**
* /users/:userId/:bookId
*/
users: (req, res) => {
var [userId, bookId] = req.params
// ...
res.json(data)
}
},
{ mode: 'reqres' }
)
或者,您也可以扩展到函数参数的参数,并用纯职能的工作,像这样:
var modofun = require('modofun')
exports.bookstore = modofun(
{
/**
* /users/:userId/:bookId
*/
users: (userId, bookId) => {
// ...
return data
}
},
{ mode: 'function' }
)
我做了一个谷歌云功能部署我在生产中,主要是因为我不需要Express的大型依赖关系,我想要更轻量级的东西。
但请记住,您还可以将Express与Google Cloud Functions一起使用。没有什么能阻止你用通常的路由匹配规则创建一个Express应用程序,然后将它作为你的GCloud功能的导出传递。
希望有所帮助。
当使用路由参数时,cli部署过程是什么样的? –