javascript - AngularJS +sails.js

标签 javascript node.js angularjs yeoman sails.js

我正在开发一个应用程序,它可以将sails.js 用于后端,将AngularJS 用于前端。我想我会使用 Yeoman-angular 生成器 https://github.com/yeoman/generator-angular 创建一个 Angular 应用程序,一旦我完成了前端逻辑,我将使用它创建一个 sails 应用程序,

  1. npm install -g sails
  2. 推出新应用

然后我会将我所有的 AngularJS 文件转移到 Sails 文件夹中。

但问题是 AngularJS 创建了这样的文件夹层次结构 https://github.com/rishy/angular-jade-stylus-seed并在运行“grunt server”时创建一个包含最终生产版本的“dist”文件夹。

另一方面,在“sails new app”之后,sails app 的文件夹层次结构是这样的。

  • api
    • 适配器/
    • Controller /
    • 模型/
    • 政策/
    • 服务/
  • Assets
    • 图片/
    • js/
    • 样式/
    • favicon.ico
    • robots.txt
  • 配置/
  • node_modules/
  • 观看次数
    • 家/
    • 403.ejs
    • 404.ejs
    • 500.ejs
    • layout.ejs
  • Gruntfile.js
  • app.js
  • 包.JSON

所以,我的问题是:

  1. 现在,我如何将我的 Angular 文件转移到这个sails 目录,我应该如何构建它?
  2. 由于sails 使用“sails lift”来启动服务器,而angular 使用“grunt server”,我应该使用其中之一来为我的sailsJs + AngularJs 应用程序启动服务器,以及创建的“dist”文件夹呢在 AngularJS 之后?
  3. 我必须在 Gruntfile.js 中进行哪些更改,因为它现在应该包含来自 Angular 和 Sails 的代码?
  4. 我应该将不同的 View 和样式文件保存在哪里,我应该如何从 Angular 或 Sails 访问这些文件?

我认为很多人都面临着类似的问题,因为 AngularJS 和 SailsJs 目前风靡一时。应该有一个健壮的样板来创建一个 AngularJS + SailsJS 应用程序,遗憾的是现在缺少它。

最佳答案

由于 Sails 是一个纯粹的后端框架,而 Angular 是纯粹的前端,它们可以很好地协同工作。当您将 Angular 生成器带入其中时可能会有些困惑,但如果您要从 Angular Seed 开始,以下是基本步骤。应用程序和 Sails v0.10:

  1. 使用 sails new myApp 创建一个新的 Sails 应用程序
  2. 清除myApp/assets的内容文件夹
  3. 复制 Angular 种子 app 的内容文件夹到 myApp/assets
  4. 替换myapp/views/layout.ejs的内容与 Angular Seed app/index.html 的那些文件
  5. layout.ejs 中删除所有非脚本标记内容文件(<body> 标记之后和第一个 <script> 标记之前的所有内容,并使用它来替换 myApp/views/homepage.ejs 的内容
  6. 地点 <%-body%><body> 之后标记 layout.ejs

然后您可以使用 sails lift 启动服务器你会在 http://localhost:1337 看到 Angular 应用程序.

我有 put this on Github供引用。

使用这种方法,你不需要对 Gruntfile 做任何事情,而且你永远不会调用 grunt server --这仅用于使用他们的测试服务器测试 Angular 应用程序,您将用 Sails 替换它。您仍将受益于 Sails grunt-sync 任务,该任务会在您的前端 Assets 发生变化时对其进行监视和同步。

如果你真的想使用 Yeoman Angular 生成器,可以尝试直接在 assets 中生成应用程序。 Sails 应用程序的文件夹并使用该文件夹中的生成器命令。我以前没有使用过它,所以我不知道 dist 文件夹的用途,但似乎它安装的所有 Node 模块都在那里支持测试 Web 服务器(你也不需要它,因为你有 Sails)和测试套件(总是很好)。我能看到的唯一问题是您是否需要 Yeoman 生成的 Gruntfile 中的某些任务。 Sails 处理较少的编译和 CSS 缩小(在生产模式下),但它对 Jade 或 Stylus 没有任何作用,因此如果您确实需要这些任务,则必须将这些任务添加到 Sails Gruntfile。

关于javascript - AngularJS +sails.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938850/

相关文章:

node.js - 即使调用计数为 1,Sinon spy 断言也会失败

javascript - Express body-parser 处理表单上的复选框数组

node.js - 如何在 Twilio 函数内发出 POST 请求?

带有过滤器和 $http 服务的 Angularjs 计时

Javascript未经许可触发声音?

javascript - 在 Angular 的 $location.path 中传递参数

javascript - 幸运之轮 : Select Appropriate DIV

javascript - 调整窗口大小导致按钮移动到下一行

html - 等式两边的单向绑定(bind)

javascript - 如何使用 AngularJs ui-router 添加可选的 $stateParams?