Sails应用程序最佳实践



嗨,我正在使用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 RESTapi完全分离呢。并使用不同的端口运行它们。当有人敲我们的服务器时,我们将使用Ngnix将它们重定向到我们的Angular应用程序,Angular将敲我们的REST API Sails服务器。

哪一种做法更好?

我还没有测试过那个项目。话虽如此,如果一切正常的话,它看起来很不错。请注意,sails 0.10仍然没有发布(目前它们处于rc3),所以您现在不应该在生产中使用它。

我以前尝试过将angular和帆分离到不同的服务器。结果是一团糟,非常痛苦。问题包括

  • 必须为XHR请求将域列入白名单
  • 以某种方式生成用于表单源验证的CSRF令牌
  • 不能为角视图注入任何服务器端模板(至少不能使用由sails提供支持的模板)

即使您要手动设置帆和角度(如的README.md中所述https://github.com/chiefy/sails-angular-yeoman-logindemo)与使用两种开箱即用的解决方案相比,这将不是一场斗争。在实践中,您应该使用类似forevercluster的东西来提高性能并避免停机时间(如果服务器崩溃,请重新启动服务器)。

希望这能有所帮助。

编辑:Sails v0.10已发布

如果您选择将同一服务器用于两者(套接字和服务器),您是否尝试过角帆绑定?(https://github.com/diegopamio/angular-sails-bind)我敢打赌你没有,因为我几分钟前刚刚向全世界发布了:)。我为自己的项目制作了它,然后决定将其作为一个独立的库,这样每个人都可以从中受益,我也可以第一次体验开发bower包。

我希望它能帮助你。到目前为止,它使用相同的基本url,但我可以很容易地使其可配置。

BTW:它适用于帆0.10(因为有些事情,比如主题名称从0.9开始就改变了)。如果你需要让它适用于0.9,请告诉我,我很乐意提供帮助。

保持解耦的体系结构为部署提供了更大的灵活性(即移动设备ala cordova)。紧密耦合体系结构也有其优点,但一个常见的缺点是将服务器端会话与移动模式结合使用。希望这能有所帮助!