需要帮助Scatter(IOC)服务正常运行

时间:2014-12-05 12:23:30

标签: javascript node.js inversion-of-control scatter-ioc

我已经非常详细地关注Services上提供的示例,但无法让我的工作。我不能为我的生活看到我出错的地方。

我希望输出类似于以下内容

Loading initializeApp
Loading Route 1
Loading Route 2
in initializeApp
Registering route 1
Registering route 2
App initialized

但改为

Loading initializeApp
in initializeApp
App initialized

Route1.js

var self = module.exports = function(){
    console.log("Loading Route 1")
    return {
        register: function() {
            console.log("Registering route 1");
        }
    }
};

self.__module = {
    provides: ['routes/register']
};

Route2.js 本质上是Route1的副本

var self = module.exports = function(){
    console.log("Loading Route 2")
    return {
        register: function() {
            console.log("Registering route 2");
        }
    }
};

self.__module = {
    provides: ['routes/register']
};

initializeApp.js

module.exports = function(registerRoutes) {
    var self = {
        initializeApp: function () {
            console.log("in initializeApp")
            return registerRoutes();
        }
    }
    return self;
};

module.exports.__module = {
    args: ['svc!routes/register'],
    provides: ['initializeApp']
}

index.js

var Scatter = require('scatter');
var scatter = new Scatter();

scatter.registerParticle([
    __dirname + '/lib'
]);

scatter.load('svc|sequence!initializeApp').then(function(initializeApp) {
    return initializeApp();
}).then(function() {
    console.log('App initialized');
});

我可以让简单的依赖注入工作,但服务正在杀死我。 我已尝试过各种调整,但无法获得比我所包含的输出更好的内容。
包含的代码是我能做到的最简单的代码,并且最接近提供的样本。

1 个答案:

答案 0 :(得分:1)

您是否将路线放入粒子子网站?您的容器正在从lib/子目录加载其粒子。你的路线是否在粒子目录中?类似于lib/<particle name>/route1.js