构建全栈应用程序目录的合适方法是什么?

What is an appropriate way to structure the directory of a fullstack application?

为了预先提出这个问题,我会提到这是我在 Whosebug 上的第一个问题,所以如果我错过了常见的做法或错过了其他更容易回答的问题,我很抱歉。

我的问题是指其他人构建全栈应用程序的方式。就我而言,我正在制作一个 PERN(PostgreSQL、Express、React、Node)堆栈应用程序。我环顾四周,看到一些教程建议应该将前端和后端的关注点分开,这意味着应该有一个 root/ 目录,其中包含 /client//server/ 目录及其自己的 package.jsonnode-module 等。我假设 README.md.gitignore 和其他常用文件仍在根目录中。总的来说,我想知道哪些目录结构是常用的,以及我对所提供信息的推测是否正确。

示例:

  ├─ client/
  │  ├─ node-modules/
  │  ├─ public/
  │  ├─ src/
  │  ├─ package.json
  │  ├─ package-lock.json
  │  └─ ...
  ├─ server/
  │  ├─ node-modules/
  │  ├─ index.js
  │  ├─ package.json
  │  ├─ package-lock.json
  │  └─ ...
  ├─ README.md
  ├─ .gitignore
  └─ ...

此外,我很好奇专用于运行服务器的 Javascript 的名称。我看过 index.jsserver.js

将前端与后端分离是一种常见的方法,尤其是当您有单独的团队进行开发时。 部分考虑因素应该是您想使用哪种身份验证方法(会话与令牌)以及您希望如何部署您的应用程序。

让一个节点服务器为您的前端提供服务的一个好处是它是同一个域,因此您可以使用会话。如果你解耦它,它将在不同的域上,所以你通常会使用令牌。

将它们解耦的一个好处是您可以将多个前端应用程序连接到一个 Restful API。

几个月前我遇到了同样的问题,并在不同的应用程序上尝试了这两种方法。我真的认为这取决于您的用例,但建议您在几个个人项目中尝试两者。

这是一个应用程序示例,它使用相同的服务器来提供构建文件夹。 https://github.com/StephenGrider/FullstackReactCode/tree/master/server