Sails 应用最佳实践

3

你好,我正在使用Sails和Angular创建单页应用程序。 我找到了以下示例:

https://github.com/mikedevita/sailsjs-v10-angularjs-requirejs-boilerplate

https://github.com/levid/angular-sails-socketio-mongo-demo

https://github.com/chiefy/sails-angular-yeoman-logindemo

这是最好的方法吗? 如果我们将Angular应用程序与Sails REST API完全分开,并使用不同的端口运行它们,会怎样呢? 当有人访问我们的服务器时,我们将使用Nginx将其重定向到我们的Angular应用程序,并使Angular访问我们的REST API Sails服务器。

哪种做法更好?

3个回答

4

我还没有测试过这个项目。话虽如此,如果一切正常的话,它看起来非常不错。需要注意的是,目前 sails 0.10 尚未发布(现在他们的版本号为rc3),因此你现在不应该在生产环境中使用它。

我以前尝试过将 Angular 和 Sails 分别放在不同的服务器上,结果变得非常混乱而且很痛苦。问题包括:

  • 必须为 XHR 请求白名单设置 sails 域
  • 一些方法来生成用于表单源验证的 CSRF 令牌
  • 不能将任何服务器端模板注入 Angular 视图(至少不能使用 sails 支持的模板)

即使你按照 https://github.com/chiefy/sails-angular-yeoman-logindemo 中的 README.md 手动设置 sails 和 angular,也会比使用两个开箱即用的解决方案更容易些。

在实践中,你应该使用像forevercluster这样的工具来提高性能并避免停机时间(如果服务器崩溃,请重新启动它)。

希望这能帮到你。

编辑: Sails v0.10 已经发布。


1
我不知道 sails.js 稳定性如何,但似乎在生产环境中使用版本 1 之前的软件已经不再是问题了。例如,node.js 的版本是 v0.10 - 有多少人在生产环境中运行它? - Joshua Hutchison
自从版本1.x.x以来,它只意味着最初发布的代码库已经被更改为不向后兼容的方式(请参见语义化版本控制http://semver.org/)。只要有足够的单元测试或者承诺相当稳定,我就很放心地在生产中使用0.x.x软件,比如node和sails。如果你在NASA或波音工作,你可能更关心尝试和破坏的软件。 - danba

3
如果您选择使用相同的服务器进行套接字和服务器操作,您是否尝试过angular-sails-bind?(https://github.com/diegopamio/angular-sails-bind)我敢打赌你没有,因为我刚刚发布了这个项目。我为自己的项目制作了它,然后决定将其作为一个独立的库放出来,以便每个人都可以受益,我也可以有我的第一个开发Bower包的经验。
希望它能对您有所帮助。到目前为止,它使用相同的基本URL,但我可以很容易地使其可配置。
顺便说一下:它适用于sails 0.10(因为某些内容,如主题名称自0.9以来已更改)。如果您需要使其与0.9一起工作,请告诉我,我很乐意帮忙。

0
保持解耦的架构可以为您提供更多的部署灵活性(例如移动设备,如Cordova)。紧密耦合的架构也有其优点,但一个常见的缺点是在移动范式中使用服务器端会话。希望这可以帮到您!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接