node.js - Express JS 到 Azure 函数 API 迁移

标签 node.js azure express azure-functions azure-function-app

我正在将 Node Express JS 应用程序迁移到 Azure 函数。我的应用程序中有超过 250 条路线。 我经历了this microsoft从 Node Express JS 转换到 Azure 函数的链接 ( solution repo )。我的理解是,我必须为所有路由创建 azure 函数。即每条路线本身都是一个函数。我的应用程序中有超过 250 个路由,因此,我最终将在自己的文件夹中创建 250 个 function.js,是否有一种不那么痛苦的方法来进行此迁移。

我考虑基于代码级路由,即按共同目的对所有 API 进行分组,并为该顶级目的创建函数,然后使用传递给函数的 URI 在内部路由请求。有更好的方法吗?

最佳答案

最终,创建单独的函数可能更有意义,以获得更好的内置日志记录并允许利用输入/输出绑定(bind)等好处,但这取决于您的场景。

但是也可以按原样重用 Express 应用程序代码,并且有两种方法可以实现此目的

  1. 一个处理函数,用于捕获所有路由并将其转发到 Express。您可以使用 azure-function-express npm 模块为expressjs 实现了这一点。 请注意,我自己没有使用过这个模块,但看起来很有前途

  2. 利用Custom Handlers特征。这允许您运行任何 Web 服务器(在您的情况下是expressjs 应用程序)并将请求转发到 Web 服务器。与 1 类似,您可以选择只使用一个 catch all 函数,因为您有很多路线需要覆盖。

    请注意,此功能目前处于预览阶段。

关于node.js - Express JS 到 Azure 函数 API 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64024407/

相关文章:

javascript - node.js:从其他文件访问导出的函数

node.js - 如何在 Postgres/node 中正确转义原始 SQL 查询 (plainto_tsquery)

javascript - Passport.js 身份验证后 Express.js 无法正确路由

c# - Windows Azure 计算机不支持

Azure 应用程序未向 AAD 注册

node.js - Socket.IO 中的路由

javascript - 我可以使用另一个 Node 模块的 package.json 中存在的脚本别名吗?

node.js - 可扩展的 Node 快速路线

azure - 获取在 Azure Key Vault key 中上传的 pem 文件

mysql - 从路由连接到 Node.js 中的数据库