【问题标题】:What should be a project structure for React + Node.js? [closed]React + Node.js 的项目结构应该是什么? [关闭]
【发布时间】:2015-12-19 22:19:36
【问题描述】:

一个有点宽泛的问题,但是在 JS 世界的所有这些趋势中,有时很难找到关于这些简单事物的信息。 在此类项目中组织文件和文件夹的更好方法是什么? 有来自 Facebook 的几种语言的服务器 examples,但它是用于非常基本的项目。

还可以在 git 上找到 React 示例

但这些例子只是为了玩弄。

我们的目标是 - 拥有明确分离的客户端和服务器组件。将它们移动到单独的文件夹树中。 还具有类似应用程序的结构(例如 Django)

所以主要问题是:

将 nodejs/iojs 服务器端与 React 客户端组件分开并将它们全部放在一个项目中的正确方法是什么?

项目:

  • nodejs 服务器,用于站点,用户可以在其中创建自己的文章,在中心/主题中分开。
  • 在前端.SPA 上做出反应。
  • 加载 - 大约 10 000 个用户。
  • 通过 Mongoose 访问的 MongoDb 数据库

【问题讨论】:

  • 项目结构的目标是什么?熟悉?速度?
  • @ArchHalkeller 基本上是基于社交网络的具有身份验证的站点,可以在不同的中心(技术、体育等)、cmets 中创建文章。
  • 对,但是“结构的目标是什么”?知道它做了什么是无关紧要的。根据不同的项目规模和需求,有几十种(如果不是更多)方法来构建您的应用程序以实现不同的目标。
  • @kevinB 我已经更新了描述。很抱歉提出令人沮丧的问题。

标签: javascript node.js reactjs iojs


【解决方案1】:

React-starter-kit 是一个非常好的同构项目模板,还包括所有必要的工具,如 eslint、babel...等。它有详细的文档记录,因此您可以轻松了解每个文件夹的用途。

在构建项目结构之前,您必须考虑是否有必要应用助焊剂,不同的助焊剂或受助焊剂启发的框架可能会使您的结构有所不同。 React-starter-kit 是开始尝试不同实现的好地方。

【讨论】:

【解决方案2】:

基本上你可以从任何 React.js 样板开始;看一遍,从几个方面评估问题

  • 在人群中区分作品是否容易
  • 应用程序结构有意义吗?当你在同一件事上重新工作时,你会难以理解应用程序的结构吗?
  • 将来如果你想增加功能主义者会很难做到吗? (假设您需要 csrf 支持)

我比较了一些反应样板,最终选择了 isomorphic500。我修改了我的代码以达到这样的效果:

src 文件夹中的内容是您将要开发的模块。对我来说,如果所有模块都解耦,那么开发东西会更容易,并且通过这样做,您可以将您的工作与您的队友(如果有的话)分开。

【讨论】:

    【解决方案3】:

    这样的东西怎么样,我在 GitHub 上看到很多项目都遵循类似的结构,这就是我使用的。

    components/   // React Components Directory
    models/       // Mongoose Models (if your using a database too)
    public/       // Static Files Directory
    ---- css
    ---- js
    ---- svg
    ...
    utils/        //Files containing utility methods
    views/        // Server Side Views (jade, or handlebars, ..)
    app.js        // Client side main
    config.js     // App configuration
    package.json 
    routes.js     // Route definitions
    server.js     // Server side main
    

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 2013-07-02
      • 1970-01-01
      • 2020-11-22
      • 2010-09-16
      • 2017-04-15
      • 2023-03-04
      • 2021-08-01
      • 2019-06-12
      相关资源
      最近更新 更多