node.js中wire.js的示例

时间:2012-08-08 20:33:43

标签: node.js wirejs

我是Node的新手,来自C#背景我想用Node来解决的一个主要问题是依赖注入。我知道wire.js具有这种能力,我已经阅读了我能在其上找到的所有内容,我甚至已经下载了Html“Hello World”示例。但是,我仍然无法让它正常工作。

以下是尝试让它发挥作用的所作所为:

  1. 我将hello-wired.js和hello-wired-spec.js文件拖到我的Node项目中。
  2. 我将/ js / wire中的wire文件夹从示例应用程序中拉到我的Node应用程序中的/ node-modules / wire。
  3. 我在构造函数中删除了hello-world.js中的代码行,因为我没有Html节点,并且我使构造函数无参数。然后我将sayHello中的行替换为使用console.log(),因为我没有InnerHtml。
  4. 我创建了一个测试操作

  5. app.get('/testwired', function (req, res) {
        require('wire!hello-wired-spec', function (spec) {
            console.log(spec);
            res.send(spec.sayHello("this is a test"));
        });
    });
    


    我得到的错误是它无法找到模块线!hello-wired-spec。我认为这意味着我没有配置wire.js知道从哪里获取我的规范,但我无法弄清楚如何。我也不知道我是否应该使用回调。

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:8)

语法“wire!hello-wired-spec”特定于AMD加载器(它使用wire作为AMD插件),而Node不需要理解AMD。因此,在节点中,您将以编程方式使用wire,require()就像任何其他lib一样。除此之外,它将以基本相同的方式工作:您将为它提供一个电线规格模块,它将返回一个承诺,一旦它现在连接它将解决。

这是为节点编写的simplest-possible "hello wire"。 main.js需要()s导线,然后将布线规格(在spec.js中)提供给它。 wire()返回一个使用完全有线上下文解析的promise。现在的电线规格并没有太大的兴趣,但那就是你进来的地方:)

希望这足以让您在节点中使用wire,但如果您有其他问题,请随时在cujojs google group进行跟进!