【发布时间】:2015-06-11 17:56:55
【问题描述】:
我想创建两个不同的 Sails.js 应用程序,例如 hello-world 和 hello-world-admin。在两个应用程序中,我想让两个应用程序使用相同的服务/模型。所以我正在考虑将 hello-world 应用程序中的服务/模型打包为 npm,并将其加载为两个。
但是 Sails.js 模型必须在提升阶段进行相应的扩展。所以仅仅使用'require'并不能满足它。是否有任何正确/好的方法来实现它(在两个应用程序中使用相同的模型)?
我正在考虑使用钩子来扩展模型,但我找不到很好的例子。任何 cmets/info 将不胜感激。
更新
我正在尝试使用“可安装的挂钩”来扩展模型。我在node_modules中准备了sails-hook-models包,下面有index.js。
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 的方法。我不确定这是不是一个好方法。如果您有替代/更好的方法,请告诉我。
【问题讨论】:
-
你应该展示你尝试了什么
-
我正在尝试使用可安装的挂钩,请查看上面的更新部分。
标签: javascript node.js sails.js waterline