服务器端和胖客户端 Web 应用程序的文件夹结构

2024-01-01

目前,我使用 Node.js 作为后端,使用 extjs 或骨干作为客户端,现在我对文件夹结构完全感到困惑。

Using express我的文件夹结构如下

appname
  |--controllers
  |--models
  |  |--appmodel.js
  |--public
  |  |--css
  |  |--js // any client-side javascripts
  |--routes
  |  |--router.js
  |--views
  |  |--appview.ejs
  |--app.js

where app.js是入口点,它使用router.js处理视图的路由和渲染。如果只是服务器端开发,这样就可以了。现在如果我想在客户端使用 ExtJS 或 Backbone,我应该如何组织我的代码?我应该将其添加到public文件夹或views?

appname
  |--controllers
  |  |--extbasedcontroller.js // correct location?
  |--models
  |  |--appmodel.js
  |  |--extbasedmodels.js // correct location?
  |--public
  |  |--css
  |  |--js
  |  |  |--extjs // extjs files
  |--routes
  |  |--router.js
  |--views
  |  |--appview.ejs
  |  |--extbasedview.ejs // correct location?
  |--app.js

如果是这种情况,我应该将 extjs 文件的模型放在哪里?如果我把它放进去models文件夹感觉就像我将客户端和服务器代码混合在一个文件夹中,这会令人困惑......


处在你的位置,我会这样做:

appname
  |--ServerCode
  |  |--controllers
  |  |--models
  |  |  |--appmodel.js
  |  |--routes
  |  |  |--router.js
  |  |--views
  |  |  |--appview.ejs
  |  |--app.js
  |--public
  |  |--css
  |  |--js // any client-side javascripts
  |  |--models
  |  |--controllers
  |  |--...

主要思想是放置公用文件夹超出了服务器 JavaScript 的范围 files.

请参阅此处的示例:https://github.com/madhums/node-express-mongoose-demo/ https://github.com/madhums/node-express-mongoose-demo/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务器端和胖客户端 Web 应用程序的文件夹结构 的相关文章

随机推荐

  • 我想用 Proguard 混淆 AndroidManifest.xml

    我可以使用 Proguard 混淆 AndroidManifest xml 文件吗 我想在我的 proguard config 文件中写入源代码 adaptresourcefilenames AndroidManifest xml 但这没用
  • 进度条会减慢应用程序速度吗?

    当我有进度条时 与没有进度条的启动相比 我的应用程序启动需要更长的时间 有可能吗 或者这只是视觉效果 我想 并且也注意到 进度条的创建和修改需要一些时间 时间开销对于长时间运行的操作不太重要 但对于短时间操作 几秒 来说很明显 然而 我更喜
  • 共享元素活动过渡动画中的 Z 顺序

    我正在使用与此类似的代码制作一些基本的共享元素活动转换动画 Intent i new Intent AnActivity this AnotherActivity class ActivityOptionsCompat options Ac
  • Opentok 屏幕共享音频

    我尝试使用 opentok JS 客户端创建一个屏幕共享应用程序 该应用程序也共享发布者的音频 屏幕共享工作正常 但音频从未被共享 现在 我注意到控制台 Firefox 中有一条警告说Invalid audioSource passed t
  • Jupyter nbconvert LaTex 导出主题

    我正在使用 Jupyter Notebook nbconvert 另存为菜单 通过 Latex 导出为 pdf 然而 pdf 文件的状态并不好 例如 一些宽表显示得很好 我希望有一个用于将表格大小调整为页面宽度的框 是否有任何样式 模板可以
  • 循环遍历 Android 视图的所有子视图?

    我正在开发一款 Android 游戏 为了帮助实现它 我的想法是创建视图的子类 然后 我将插入此类的几个实例作为主视图的子视图 每个实例都会处理按下时的检测 通过 OnTouchListener 我现在遇到的问题是如何循环遍历所有这些子视图
  • 获取 org.elasticsearch.transport.NodeDisconnectedException:[][inet[localhost/127.0.0.1:9300]][cluster/nodes/info] 已断开连接

    我是 Elastic Search Java Api 5 0 的新手 我正在使用elasticsearch 5 0 0 我尝试使用 Spring Boot 创建一个 Java 应用程序 Maven 运行应用程序后 显示 2016 11 04
  • 在heroku上的设计设置中找不到ENV['SECRET_KEY']

    这个要点不对您的密钥进行版本控制 https gist github com cjolly 6265302太棒了 我已经使用它几次了 不再对我的 Rails 密钥库进行版本控制 我尝试将它用于heroku 上的设计secret key 但我
  • 寻找比 GDI 更快的解决方案来渲染动态数据图

    我使用 C CLI 编写了一个简单的基于 GDI 的数据绘图仪 但它不是特别快 一些基本分析表明问题在于屏幕渲染 有没有办法为 UserControl 启用硬件加速 或者是否有用于 direct3D 的 net 接口 或者我可以考虑其他一些
  • Angular - ui-router 获取之前的状态

    有没有办法获取当前状态的先前状态 例如 我想知道当前状态 B 之前的前一个状态是什么 其中前一个状态是状态 A 我无法在 ui router github 文档页面中找到它 在移动到新状态之前 我使用解析来保存当前状态数据 angular
  • 我的 CREATE View 查询中不需要锁定吗

    我正在 MS SQL Server 上创建一个视图 我对 MS SQL 没有太多接触 并且不太熟悉 NO LOCK 提示 我明白它的作用 但我不知道我是否需要在我的情况下使用它 有人问我是否应该包括它 但我不知道 我是否需要在用于创建视图的
  • 将 Spark DataFrame 列转换为 Python 列表

    我处理一个有两列的数据框 mvv 和 count mvv count 1 5 2 9 3 3 4 1 我想获得两个包含 mvv 值和计数值的列表 就像是 mvv 1 2 3 4 count 5 9 3 1 所以 我尝试了以下代码 第一行应该
  • Ironpython调用numpy问题

    铁蟒2 6 蟒蛇2 6 5 麻木 科学Py import sys sys path append r D Python26 dll sys path append r D Python26 Lib sys path append r D P
  • 为什么 Maven 报告“校验和验证失败,存储库中没有可用的校验和”?

    我正在尝试使用此处描述的 3 个步骤创建自定义 Maven 存储库 http www javaworld com community node 3968 http www javaworld com community node 3968
  • scikit-learn 中奇怪的 SVM 预测性能 (SVMLIB)

    我在 10000x1000 的大型数据集 10000 个对象 1000 个特征 上使用 scikit learn 的 SVC 我已经在其他来源中看到 SVMLIB 的扩展范围不能超过约 10000 个对象 我确实观察到了这一点 traini
  • 在 php 中组合重叠字符串序列的内置函数?

    PHP 中是否有内置函数可以将 2 个字符串合并为 1 个 Example string1 abcde string2 cdefg 合并可得 abcdefg 如果确切的重叠序列和位置已知 则可以编写代码来合并它们 我发现 substr re
  • 何时使用 TaskCreationOptions.LongRunning?

    我想知道这个问题有一段时间了 但从未真正找到答案 我知道这是任务调度程序在其中运行任务的提示 并且任务调度程序可以 或现在将 决定为该任务实例化一个非线程池线程 我不知道 令人惊讶的是在互联网上找不到任何地方 是何时将任务指定为长时间运行的
  • 如何在 MySQL 8 中永久禁用列统计?

    Since MySQL 8 the column statistics默认情况下启用标志 所以如果你尝试转储一些表MySQL工作台8 0 12 您会收到以下错误消息 14 50 22 转储数据库 表名 运行 mysqldump exe de
  • 如何通过输入流手动向 cmd.exe 进程提供命令?

    这个问题听起来有点晦涩难懂 这是一个稍长的版本 我需要让主循环等待用户输入 并且还需要运行一个进程并等待来自用户输入要发送到的流的输入 全文 我正在构建一个 Cmd 模拟器 起初一切看起来都很好 用户输入命令 它会回显到输出区域 进行处理
  • 服务器端和胖客户端 Web 应用程序的文件夹结构

    目前 我使用 Node js 作为后端 使用 extjs 或骨干作为客户端 现在我对文件夹结构完全感到困惑 Using express我的文件夹结构如下 appname controllers models appmodel js publ