【问题标题】:Sails.js: Can I package some services/models as npm and load the npm in Sails.js app?Sails.js:我可以将一些服务/模型打包为 npm 并在 Sails.js 应用程序中加载 npm 吗?
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

是的,使用Sails Generator 项目来执行此操作。

【讨论】:

    猜你喜欢
    • 2015-07-22
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2015-08-29
    • 2014-09-04
    • 2020-02-11
    • 2014-04-22
    相关资源
    最近更新 更多