Tag: 组织

在express.js应用程序中组织游戏

我有一个运行几个多人网页游戏的服务器。 它构build在Node.js + Express.js中,具有标准的文件夹结构(例如“views”下的Jade文件,“public / javascripts”下的Javascript客户端文件等)。 每当我添加一个新的游戏,我必须: 将其Jade文件添加到“views /” 将其Javascript文件添加到“public / javascripts /” 将其相关的事件处理程序添加到另一个文件夹中的Node.js文件 将代码添加到引用所有这些新文件的主文件(server.js)。 这似乎是一个次优组织,因为与每个游戏相关的文件分散在许多文件夹中。 你能提出一个更好的结构,每个游戏的代码将被封装在一个地方吗?

编写和组织javascript插件的最佳做法是什么?

所以我有很多不同的javascript文件是相同的代码块,但我偶尔不得不更新,由于path的变化或其他各种条件。 现在复制并粘贴到新的文件工作正常,但恼人的执行。 有没有一种很好的方法来维护一个JavaScript文件与我的“插件”代码,并让它可以通过使用插件的其他JavaScript文件访问? 我正在寻找一个好的nodejs解决scheme和vanilla js解决scheme。 如果可以相互分享,那将是理想的,但不是以任何方式要求的。 理想情况下,我想在workspace/托pipe我的工作区,并有一些文件夹, workspace/front-end-js/和workspace/back-end-nodejs/ ,能够在workspace/plugins/插件运行代码我可以执行像MyPluginVar.Foo(); 我知道一些系统,如节点的var foo = require('bar'); 和前端浏览版本,但真的不知道我所有的select。 什么是编写和组织JavaScript插件的最佳方式? – 编辑:我真的想避免npm,但它可能是最好的select。

组织一个AngularJS应用程序时,你的模块应该都有相同的名称?

在组织一个Angular项目时,你的模块是否应该有相同的名字? 我见过各地的例子。 给定一个像这样的结构: root-app-folder ├── index.html ├── scripts │ ├── controllers │ │ └── main.js │ │ └── … │ ├── directives │ │ └── myDirective.js │ │ └── … │ ├── filters │ │ └── myFilter.js │ │ └── … │ ├── services │ │ └── myService.js │ │ └── … │ ├── vendor […]

如何使用NodeJS来组织构build,服务器,客户端和共享的JavaScript代码

在服务器上使用NodeJS的一个很大的好处是可以在服务器和客户端之间共享代码(例如inputvalidation)。 现在我实际上正在使用NodeJS开发一个难题,我发现确定每个代码体执行的责任和上下文。 下面我将列举一些我曾经遇到过的困难,希望能够对我可能会忽视的公约或指导方面有所启发,从而有助于提升这些问题。 构build时代码 为遵循基本文档而使用Gulp,Grunt或者vanilla NPM的项目构build时间代码通常非常容易。 大多数较小的项目都倾向于将所有的代码保存在一个单独的文件中,而文件往往被命名为gulpfile.js这样的传统名称,但是更大的项目我已经看到这些脚本开始被分割出来。 我已经看到一些情况下,吞噬文件被拆分成多个文件,并放置在一个单独的目录下。 更糟的是,我发现gulpfile.js文件甚至没有被命名为这样的情况,导致新开发人员四处寻找gulp文件的位置,一旦findgulp命令,总是必须运行具体的– -gulpfile选项。 运行时服务器端代码 基本节点应用程序的入口点似乎只需要在运行节点命令时指定特定的JavaScript文件(例如, node script.js )。 对于Web服务器应用程序(例如使用Express的应用程序),我注意到按照惯例,入口点文件通常称为server.js,通常可以在应用程序的根目录中find。 但是,在其他一些情况下,比如在开发环境中运行Web服务器时,我看到吞噬任务承担了启动Node的责任。 在这些情况下,似乎有多种方法来包含入口点,但我发现的一个例子是启动webpack编译器,然后是入口点脚本的require语句。 在这种设置中,弄清楚如何结合正常的指导来完成典型的节点debugging命令是非常重要的。 除了应用程序的入口之外,NodeJS / Express应用程序的目录结构似乎没有任何一般指导,它们将服务器端特定的代码保留在位置上,以帮助查找它并使其与构build时间和客户端代码。 如果服务器端代码既用于提供静态内容,服务器端生成的视图(如使用MVC),也用于向客户端提供API,则服务器端故事变得更加复杂侧。 我的偏好是将API从应用程序项目中分离出来,但是我从其他人那里得到的感觉是,如果我认为这是一个合理的分离关注,那么就会有一种过度复杂的感觉。 运行时客户端代码 由于客户端代码可能经常有基于请求的第一页的各种入口点,这可能是棘手的。 但是由于URL的普遍透明性,以及它们在典型情况下如何映射资源,以及debugging工具在现代浏览器中的function如何强大,所以在脚本的后续工作中不会太麻烦。 对于客户端代码来说,困难在于典型的构build过程,而这些过程通常最终会复制文件并将其放置在不同名称的结构中。 一个例子是一个项目有一个名为src或js的文件夹,这个文件夹将客户端和服务器端代码混合在一起,除了只有一部分文件被包含在一个构build任务中,这个任务转换并经常连接文件和将它们放在分发文件夹中。 这些分发文件夹的常见名称是dist , public , www和wwwroot 。 通常情况下,如果不是这些目录总是在项目的根目录下,那么至less可以在不必询问构build脚本的情况下轻松定位。 我的希望是,对于如何把所有这些都集中在一个统一的指导下,或许是一个权威的来源,主要是指导像我这样的人可能想要从右脚开始。 作为一个副作用,即使是一个松散的标准,也可以参考某种标准,也可以减less一个团队在开始时要发明和讨论的样板量。 在上面列出的每个上下文中,显然会有一些技术特定的约定,例如在客户端用于AngularJS,Meteor或ReactJS的约定。 我正在寻找的约定更具体到分离端到端JavaScript应用程序中的主要高级上下文,其中语言和平台不再成为区分每种语言和平台的明显方式。