我正在将 Node Express JS 应用程序迁移到 Azure 函数。我的应用程序中有超过 250 条路线。
我经历了this microsoft从 Node Express JS 转换到 Azure 函数的链接 ( solution repo )。我的理解是,我必须为所有路由创建 azure 函数。即每条路线本身都是一个函数。我的应用程序中有超过 250 个路由,因此,我最终将在自己的文件夹中创建 250 个 function.js
,是否有一种不那么痛苦的方法来进行此迁移。
我考虑基于代码级路由,即按共同目的对所有 API 进行分组,并为该顶级目的创建函数,然后使用传递给函数的 URI 在内部路由请求。有更好的方法吗?
最佳答案
最终,创建单独的函数可能更有意义,以获得更好的内置日志记录并允许利用输入/输出绑定(bind)等好处,但这取决于您的场景。
但是也可以按原样重用 Express 应用程序代码,并且有两种方法可以实现此目的
一个处理函数,用于捕获所有路由并将其转发到 Express。您可以使用 azure-function-express npm 模块为expressjs 实现了这一点。 请注意,我自己没有使用过这个模块,但看起来很有前途
利用Custom Handlers特征。这允许您运行任何 Web 服务器(在您的情况下是expressjs 应用程序)并将请求转发到 Web 服务器。与 1 类似,您可以选择只使用一个 catch all 函数,因为您有很多路线需要覆盖。
请注意,此功能目前处于预览阶段。
关于node.js - Express JS 到 Azure 函数 API 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64024407/