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

我首先想弄清楚的是一个好的文件 struct .到目前为止,我的纯HTML/CSS模板有以下目录 struct ...

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

(_site是PSD等的工作目录)

我找到了一个 node 的目录 struct 示例.js/AngularJS应用程序here....

... 这表明以下目录 struct .

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

所以,这对我来说很好(除了我不会用翡翠).

我还有以下问题...

  1. 我想把所有前端和后端文件分开.这个解决方案将所有前端文件放在public/目录中,这是有意义的,因为大多数文件都需要是公共的,但是将SASS和_站点文件夹放在这里有意义吗?我可以把它们放在那里,但在我把它们投入生产时不上传,但这似乎是错误的,因为它们不应该公开.它们也不属于所有后端的根级别.

  2. CDN码开始加载AngularJS不是更好吗?

  3. 考虑到服务器只需要交付一个模板(主应用程序模板),而所有其他HTML都将在前端构建,保留索引不是更有意义吗.html文件静态,删除视图文件夹并在public/下创建partials/文件夹,就像原始AngularJS种子应用程序那样?

我意识到这都是一个意见问题,从技术上讲,我可以把它们放在任何我想放的地方,但我希望比我更有经验的人能告诉我各种目录 struct 的trap .

推荐答案

1) It usually does make some sense to make saas/less files public as you may want to use client-side less->css conversion when debugging (less.js does that). Not sure what your _site contains however (btw you should use lowercase folder for your project, especially for the public stuff).

2) 在生产中,通常最好从Google CDN加载AngularJS,只使用本地版本进行开发,根据您的环境,您可以有两个单独的布局.

3) 即使客户端渲染是一种方式,您也可以保留服务器端布局/视图渲染,在某些时候可能需要它(管理员访问、邮箱渲染等).不过,在公用文件夹中使用AngularJS中的partials名可能会有所帮助,以避免服务器端views和;客户端partials.

你应该明确地go 做目前看来最合乎逻辑的事情,当你熟悉express时,你可能会四处走动.


你应该查看现有的express framework,看看它们是如何构建应用程序的.例如,TowerJS有一个非常干净的config文件夹,但它们混淆了服务器端&;我个人不喜欢的客户端代码.

查看NodeJS MVC frameworks的对比,看看其他人是怎么做的.然而,为了完全控制&;在过度使用这些框架之前,了解事物是如何工作的.

Node.js相关问答推荐

使用Google Cloud控制台时,onCall方法在云功能中失败

使用NodeJS在S3上传文件时的格式问题

赫斯基添加命令已弃用?

如果非SQL函数在事务内部运行失败,PG-Promise事务会回滚吗?

JsonwebToken过期后如何注销和清除cookie?

Amplify 部署的应用程序出现TypeError: handler is not a function错误,但它在本地运行

无法截取页面截图

为什么当我使用waitForSelector时 Puppeteer 导致我的测试套件挂起 30 秒,即使我在页面和浏览器上调用关闭?

为什么要加密 CSRF 令牌?

处理 UTC 日期和future

如何解决这个关于 TaskRunner 的 Node/Express 代码问题?

如何从名字,中间名,姓氏中获取全名并在结果中搜索匹配?

ESLint:TypeError:this.libOptions.parse 不是函数

`npm install` 以Killed结尾

什么是nestjs错误处理方式(业务逻辑错误vs.http错误)?

在Go中,编写非阻塞代码有意义吗?

在 Node.js 与 Cron 作业(job)中设置间隔?

AngularJS +sails.js

使用 pg-promise 进行多行插入

使用 Node.js 我得到错误:EISDIR,读取