Remix.run 没有使用 node.js 作为后端吗?

Is Remix.run not using node.js as backend?

我对 Remix.run 非常感兴趣,但有一件事我真的不明白。在框架的技术解释中它说:

"虽然 Remix 运行s 在服务器上,但它实际上不是服务器。它只是提供给实际 JavaScript 服务器的处理程序。 它建立在 Web Fetch API 而不是 Node.js 上。这使得 Remix 能够在任何 Node.js 服务器(如 Vercel、Netlify、Architect 等)以及非 Node.js 环境(如 Cloudflare Workers 和 Deno Deploy)中进行 运行。

所以..后端是 Node.js 服务器吗?如果不是..它如何在后端执行JS?我觉得上面的解释有点自相矛盾

Remix 是用很多不同的适配器构建的(不确定这是否是官方术语,但适配器的想法很合适)。这允许 Remix 交换其架构的部分以使 Remix “适合”。这些适配器包的示例有 remix-vercel、remix-express 等。它们都用于将这些平台上 requests/events 的不同接口转换为 Remix 的 request/response 模型(因此获取)。

前面提到的所有适配器都是 Node-based 环境,但 Remix 也有一些适用于 non-node 环境的适配器。例如 remix-clouflare-workers 是一个适配器,旨在使 Cloudflare Workers 环境与 Remix 兼容。 Cloudflare Workers 不在 Node 上 运行,事实上它甚至不是服务器,而只是 javascript 由事件触发的功能。 Workers 运行ning 直接在 V8 Javascript 引擎上,Chrome 和 Node 到 运行 JavaScript.

使用的引擎

所以是的,Remix 可以 运行 在 NodeJS 环境中作为服务器,但由于其适配器架构,它还可以为非 NodeJS 环境提供适配器,并且是(无服务器)功能等

有趣的是,甚至 remix-react 也是一个单独的包(适配器),允许 Remix 团队(或社区)在未来为其他前端框架实现适配器!