我应该在 nuxt.js 服务器目录中构建应用程序的服务器端吗?

Should I build server-side of application inside nuxt.js server directory?

我想用 Nuxt.js 构建全栈应用程序。我想知道我应该在哪里创建服务器端 Nuxt.js 或者我应该只为服务器内容创建单独的项目。

我正在尝试设置我的项目,但我不知道该怎么做。我正在构建的应用程序将有自己的前端、后端和数据库(我将使用 MongoDB)但实际上我不知道应该如何开始。我读了很多关于 SSR 的文章,如果我打算在前端使用 Vue.jsNuxt.js 看起来真的很棒。在创建 nuxt 应用程序时,我可以选择使用 Express,然后我可以在我的目录结构中看到服务器目录,这是否意味着我应该在这个目录中构建所有后端,或者它可能只用于小东西? 我还有另一个问题,如果我想在后端使用 Nest.js 怎么办,我可以只使用 npm i -g @nestjs/cli 然后在我的服务器目录中使用 nest new project-name 吗?我也在寻找这个答案,但这种类型的 google 中的几乎所有结果都是关于(Nuxt.js[=41= 之间的比较]Nest.js).

这将是我的第一个更大的全栈项目,我想把它做好,但我真的是这方面的初学者,所以我正在寻找更有经验的程序员的答案。

您可以 运行 快递或任何 node.js 您想要的服务器 inside Nuxt.js。使用脚手架工具 create-nuxt-app, you can choose integrated server-side frameworks : Express, Koa, Hapi, Feathers, Micro, Fastify, Adonis (WIP). There isn't offical Nest.js integration, but you can easily find a starter kit on github.

安装 Nuxt.js 时

使用 create-nuxt-app,如果您选择在 您的 nuxt 应用程序中使用任何 node.js 服务器 ,您将在其中看到一个 server 目录您的目录结构,与相应的服务器端预配置 index.js 文件。

这是我自己的感受:

我认为内部解决方案对于小型 SPA 或 Headless 项目(例如:解析和提供文件、简单的 JWT 身份验证、小型 websocket 服务器...)或前端逻辑应用程序有意义无法适应客户端浏览器并且与数据库无关(如图像或文件计算)。 但通常,此服务器 运行 Nuxt 应用程序的数据库层:REST 或 GraphQL API。它还可以 运行 您的应用程序的业务逻辑,提供身份验证,以及随着项目的增长越来越多...

If you think about separation of concerns and microservices architecture, do not use server inside Nuxt.js. Splitting both frontend and server will result more flexibility. You can host frontend and API in different servers.

所以现在,nuxt.js 真的需要 node.js 服务器吗?
如果您打算在 SSR 模式下使用它,则可以,如果您打算像 SPA 或静态生成方式一样使用它,则否。 Docs here....
在 SSR 模式下,nuxt.js 在第一次渲染时向您的 API 请求数据,并向客户端浏览器或机器人提供完整的 SEO 兼容页面。它还提供浏览器导航和获取您的 API 所需的所有 javascript。为此,SSR 模式下的 nuxt.js 应该 运行 和 node.js.

我假设您为 API 和您的业务逻辑应用程序说 "back-end",在这种情况下,您应该将 nuxt.js 和您的服务器分开。两个 node.js 个实例到 运行 个实例。