Sails.js 如何在2个或多个sails项目之间共享模型

Sails.js 如何在2个或多个sails项目之间共享模型,sails.js,Sails.js,我有两个sails项目,一个网站——前端和管理后端。这些项目应该是独立的,但它们共享api/models文件夹。分享它们的首选方式是什么? 目前,我们使用了一个单独的git存储库,将其克隆到api/模型中(git子模块也可以工作)。我在问自己,这是最好的方式还是推荐的方式 带帆钩的帆v0.11是否以更好、更模块化的方式解决了这一问题 迄今为止,非常感谢如果两个应用程序都在一台服务器上工作,您可以将模型文件夹从一个应用程序符号链接到另一个应用程序 若并没有(或者你们在模型上有差异或者其他一些原因)

我有两个sails项目,一个网站——前端和管理后端。这些项目应该是独立的,但它们共享api/models文件夹。分享它们的首选方式是什么? 目前,我们使用了一个单独的git存储库,将其克隆到api/模型中(git子模块也可以工作)。我在问自己,这是最好的方式还是推荐的方式

带帆钩的帆v0.11是否以更好、更模块化的方式解决了这一问题


迄今为止,非常感谢

如果两个应用程序都在一台服务器上工作,您可以将模型文件夹从一个应用程序符号链接到另一个应用程序

若并没有(或者你们在模型上有差异或者其他一些原因),git子模块就是一条明确的道路
sails-hook机器目前不稳定,如果您想在生产中使用它,请三思。

首先:


如果两个应用程序都在一台服务器上工作,则可以将模型文件夹从一个应用程序符号链接到另一个应用程序

请不要这样做。这是devops hackery最糟糕的一面,也是使您的项目不可部署的好方法

现在,有一个解决方案:

在我的模块中,我使用标准的sails生成器并在
api/models
中创建可扩展的模型存根。例如,这里我生成
用户
护照
模型:

另一个例子也在这里:

实际的存根如下所示:


不幸的是,sails.js没有这样做的惯例;但上述方法在我的项目实践中效果良好。

我们尝试了符号链接。只有在模型中没有任何依赖项/要求调用时,它才起作用。例如,如果您有一个“require(“lodash”)”,节点将生成一个realpath,并在models目录中搜索依赖关系lodash。在这种情况下,您可能会考虑使用单独的package.json将依赖项添加到models目录。但这不起作用,因为sails让include all尝试从node_modules dir加载每个js文件。@ThomasFritz这是我在发布答案时没有考虑到的问题。如果您的依赖项是常见的东西(如async或lodash),那么您可以将其放到
globals
config中,并让sails将它们隐藏起来。否则,我似乎没有办法解决你的问题。我自己有一个针对管理员和用户的sails实例。我的用户模型具有accessLevel属性,我用几个策略委托代码流。这很有用,因为我可以为不同的用户组使用通用方法。管理员面板也有自己的视图库布局。也许,这对你有帮助