Sails.js:我可以将一些服务/模型打包为npm,并在Sails.js应用程序中加载npm?

我想创build两个不同的Sails.js应用程序,比如hello-world和hello-world-admin。 在两个应用程序中,我想让两个应用程序使用相同的服务/模型。 所以我想在hello-world应用中将服务/模型打包为npm,并将其加载到两个。

但Sails.js模型必须在提升阶段进行相应的扩展。 所以使用'require'根本不能满足它。 是否有任何正确/好方法来实现它(在两个应用程序中使用相同的模型)?

我想用钩子来扩展模型,但我找不到好的例子。 任何意见/信息将不胜感激。

更新

我试图使用“可安装的钩子”来扩展模型。 我在下面有index.js的node_modules中准备了sails-hook-models包。

module.exports = function(sails) { return { defaults: { }, initialize: function(cb) { var ModelA = require('./models/ModelA'); ModelA.identity = 'modela'; ModelA.globalid = 'ModelA'; var ModelB = require('./models/ModelB'); ModelB.identity = 'modelb'; ModelB.globalid = 'ModelB'; sails.models['modela'] = ModelA; sails.models['modelb'] = ModelB; return cb(); }, }; 

Sails解除后,模型已经被水线延伸,所以我可以通过sails.models ['modela']调用Model的方法。 我不确定这是一个好方法..请告诉我,如果你有其他select/更好的方法。

是的,有一种方法可以做到这一点: https : //github.com/tjwebb/sails-generate-entities 。 您可以定义您想要安装哪些服务/模型/控制器/等的清单。

一个例子是在这里: https : //github.com/tjwebb/sails-permissions

是的,使用Sails Generator项目来做到这一点。