node.js中wire.js的示例

MIM*_*MIM 3 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. 我创建了一个测试操作


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


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

任何帮助是极大的赞赏.

小智 8

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

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

希望这足以让您在节点中使用wire,并且如果您有其他问题,请随时关注cujojs google小组!