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

Kan*_*now 6 project node.js vue.js nuxt.js

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

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

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

Man*_*piK 7

您可以Nuxt.js中运行 Express 或任何您想要的 Node.js 服务器。使用脚手架工具create-nuxt-app安装 Nuxt.js 时,可以选择集成的服务器端框架:Express、Koa、Hapi、Feathers、Micro、Fastify、Adonis (WIP)。没有官方的 Nest.js 集成,但您可以在 github 上轻松找到入门工具包

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

以下是我个人的感受:

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

如果您考虑关注点分离和微服务架构,请不要在Nuxt.js中使用服务器。拆分前端和服务器将带来更大的灵活性。您可以将前端和 API 托管在不同的服务器中。

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

我假设您说的是 API 和业务逻辑应用程序的“后端”,在这种情况下,您应该将 nuxt.js 和服务器分开。两个 node.js 实例来运行两者。