Sails app最佳实践

时间:2014-02-28 04:51:52

标签: node.js angularjs single-page-application software-design sails.js

您好我正在使用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应用程序与我们的风帆REST API完全分开,该怎么办?并使用不同的端口运行它们。当有人敲我们的服务器时,我们将使用Ngnix将它们重定向到我们的Angular应用程序,Angular将敲响我们的REST API Sails服务器。

哪一种更好的做法?

3 个答案:

答案 0 :(得分:4)

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

我之前尝试将角度和风帆分离到不同的服务器。事实证明这是一个可怕的混乱,非常痛苦。问题包括

  • 必须将sails域列入白名单以获取XHR请求
  • 以某种方式生成CSRF令牌以进行表单源验证
  • 无法使用任何服务器端模板注入角度视图(至少不能使用由风帆驱动的模板)

即使您要手动设置帆和角度(如https://github.com/chiefy/sails-angular-yeoman-logindemo的README.md中所述),与使用两个开箱即用的解决方案相比,它也不会那么困难。 在实践中,您应该使用forevercluster之类的内容来提高性能并避免停机(如果崩溃,请重新启动服务器)。

希望这会有所帮助。

修改: Sails v0.10已经发布

答案 1 :(得分:3)

如果您选择为两者使用相同的服务器(套接字和服务器),您是否尝试过angular-sails-bind? (https://github.com/diegopamio/angular-sails-bind)我打赌你没有,因为我刚刚在几分钟前向世界释放了:)。我为自己的proyect做了这个,然后决定将它作为一个独立的库,这样每个人都可以受益,我可以有第一次开发凉亭包的经验。

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

BTW:它适用于风帆0.10(因为有些事情,比如主题名称自0.9以来已经改变)。如果你需要使用0.9,请告诉我,我很乐意提供帮助。

答案 2 :(得分:0)

保持分离式架构可为部署提供更大的灵活性(即移动设备ala cordova)。紧耦合体系结构也有其优点,但一个常见的缺点是承诺使用服务器端会话与移动范例。希望这有帮助!