3

我是 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"));
    });
});


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

任何帮助是极大的赞赏。

4

1 回答 1

8

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

这是为节点编写的最简单的“hello wire” 。main.js 需要()的电线,然后将接线规范(在 spec.js 中)提供给它。wire() 返回一个使用完全连接的上下文解析的承诺。现在电线规格中没有太多有趣的东西,但这就是你进来的地方:)

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

于 2012-08-08T21:14:22.047 回答