首页 > 解决方案 > 构建全栈应用程序目录的合适方法是什么?

问题描述

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

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

例子:

  ├─ 客户/
  │ ├─ 节点模块/
  │ ├─ 公开/
  │ ├─ src/
  │ ├─ package.json
  │ ├─ package-lock.json
  │ └─ ...
  ├─ 服务器/
  │ ├─ 节点模块/
  │ ├─ index.js
  │ ├─ package.json
  │ ├─ package-lock.json
  │ └─ ...
  ├─ README.md
  ├─ .gitignore
  └─ ...

另外,我很好奇专用于运行服务器的 Javascript 的名称。我见过index.js并且server.js

标签: node.jsreactjsdirectory-structure

解决方案


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

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

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

I had this same question a couple months ago and tried both methods with different apps. I really think it depends on your use case, but recommend trying both on a couple personal projects.

Here is an example of an app that uses the same server to serve up the build folder. https://github.com/StephenGrider/FullstackReactCode/tree/master/server


推荐阅读