当前位置: 首页 > 面试题库 >

构建Node.js和AngularJS应用程序

彭坚壁
2023-03-14
问题内容

我将尝试第一个AngularJS项目,并且在后端使用Node.js是有意义的,尽管这意味着同时从头开始学习AngularJS和Node.js。

我想要弄清楚的第一件事是一个好的文件结构。到目前为止,我的纯HTML / CSS模板具有以下目录结构…

_site/
Fonts/
Javascript/
SASS/
Stylesheets/
Index.html

(_site是PSD等的工作目录。)

我发现一个Node.js的一个例子的目录结构/ AngularJS应用程式这里 ....

…表示以下目录结构。

app.js              --> Application configuration
package.json        --> For npm
public/             --> All of the files to be used in on the client side
  css/              --> CSS files
    app.css         --> Default stylesheet
  img/              --> Image files
  js/               --> JavaScript files
    app.js          --> Declare top-level application module
    controllers.js  --> Application controllers
    directives.js   --> Custom AngularJS directives
    filters.js      --> Custom AngularJS  filters
    services.js     --> Custom AngularJS services
    lib/            --> AngularJS  and third-party JavaScript libraries
      angular/
        angular.js            --> The latest AngularJS
        angular.min.js        --> The latest minified AngularJS
        angular-*.js          --> AngularJS add-on modules
        version.txt           --> Version number
routes/
  api.js            --> Route for serving JSON
  index.js          --> Route for serving HTML pages and partials
views/
  index.jade        --> Main page for the application
  layout.jade       --> Doctype, title, head boilerplate
  partials/         --> AngularJS view partials (partial jade templates)
    partial1.jade
    partial2.jade

因此,这对我来说看起来不错(除了我不会使用Jade的事实)。

我仍然有以下问题…

  1. 我想将所有前端文件和后端文件分开。该解决方案将所有前端文件放在public /目录中,这是有意义的,因为大多数情况下需要将其公开,但是将SASS和_site文件夹放在这里有意义吗?我可以将它们保留在那里,但是当我将它们投入生产时不能上传它们,但这似乎是错误的,因为它们不应该公开。它们也不是根源于所有后端的东西。

  2. 从CDN加载AngularJS会更好吗?

  3. 假设服务器只需要交付一个模板(主应用程序模板),而所有其他HTML都将在前端构建,那么保持index.html文件静态,删除views文件夹和像原始的AngularJS Seed应用程序一样,在public /下创建一个partials /文件夹?

我意识到这只是一个见解,我可以从技术上将它们放置在我想要的任何地方,但是我希望比我更有经验的人可以告诉我各种目录结构的陷阱。


问题答案:

1)通常,使saas/less文件公开确实有意义,因为您可能希望在调试时使用客户端的less->
css转换(less.js这样做)。_site但是,不确定包含的内容 (顺便说一句,您应该为项目使用小写文件夹,尤其是对于公共内容)

2)通常,在生产过程中从Google CDN加载AngularJS是一个好习惯,仅使用本地版本进行开发,根据您的环境,您可以有两个单独的布局。

3)即使要进行客户端渲染,也可以保留服务器端布局/视图的渲染,但在某些时候(管理员访问权限,电子邮件渲染等),您可能仍需要它。但是,partials在公用文件夹中使用AngularJS
的名称可能会有所帮助,以避免服务器端views和客户端之间的混淆partials

您应该清楚地选择当前看来最合乎逻辑的方法,随着对Express的熟悉,您可能会四处移动。

您应该检查现有的快速框架,以了解它们如何构建其应用程序。例如,TowerJS有一个非常干净的config文件夹,但是它们混合了我个人不喜欢的服务器端和客户端代码。

检查一下NodeJS MVC框架的比较,看看其他人如何做。但是,我显然将从香草表达代码开始,以便完全控制并了解事情如何工作,然后再对这些框架中的任何一个进行过度承诺。



 类似资料:
  • 问题内容: 说我有这段代码来分隔expressjs中的路由: 并要求在: 1)如何以最佳方式将数据库查询分为新文件? 即使我分开数据库逻辑,该文件也会变得很大。 2)什么是分隔路线的好方法?也许是单独的模块?然后要求他们都参加? 问题答案: 这里有一个类似的问题,您应该阅读:如何构建express.js应用程序? 1)您所有的查询逻辑都应放在模型中(例如,位于/ models中的模块) 2)将您的

  • 问题内容: 我最近开始建立一个大型的社交网络,我以为自己的结构很好,但事实证明我建立的逻辑很差。 我将自己的观点与AngularJS(不好的主意)混合在一起,跳过了刀片扩展,但是由于我使用了很多块和侧边栏,所以这变得很痛苦。 目前,我只是使用angular处理表单验证,但实际上我的所有网站页面都需要ajax,数据提取等功能。 我在网上搜索时,发现角度视图存储在公用文件夹中,但是由于我的所有页面都将

  • 一个普通的应用程序由以下文件组成: 二进制文件 这个安装在 /usr/bin。 一个桌面文件 这个桌面文件向shell提供关于这个程序的重要信息,例如名称、图标、D-Bus名称,启动的命令行。安装在 /usr/share/applications. 一个图标 这个图标安装在 /usr/share/icons/hicolor/48x48/apps, 无论当前背景是什么系统都会到这里查找图标。 一个设

  • 问题内容: 在一个大型AngularJS应用程序上,所有我的控制器都放在一个“ controllers.js”文件中,这对我来说似乎难以维护。有没有更好的方法可以做到这一点,例如: 这也适用于过滤器,服务,指令等… 问题答案: 有很多组织代码的方法。您可以查看以下链接 使用AngularJS构建Huuuuuge应用 大型AngularJS和JavaScript应用程序中的代码组织 AngularJ

  • 目标 了解对象或对象集合如何变成应用程序 使用 Eclipse 创建驱动程序类 应用程序入口点 所有 Java 应用程序都需要一个入口点,让 Java 运行时知道将从这里开始执行代码。这个入口点就是 main() 方法。域对象(即应用程序的业务域 中包含的对象,例如 Person 和 Employee)通常没有 main() 方法,但每个应用程序中必须至少有一个类。 众所周知,Person 和它的

  • 我遵循了https://blog.jetbrains.com/idea/2013/03/packaging-javafx-2-applications-in-intellij-idea-121/中的步骤 但是当我尝试构建工件时,在最后一步中,我得到了这个错误 错误:Java FX Packager:无法生成工件-FX:Deploy在此JDK中不可用 这里有一个快速测试的hello world应用程