将一个库从node_modules加载到节点JS中

时间:2014-12-13 10:12:41

标签: javascript node.js

我在win 7上运行,并已将nodeJS安装为路径变量。

我安装了nodeJs模块(pusher):

运行我的脚本时,我得到:

require('pusher-client')

var API_KEY = 'cb65d0a7a72cd94adf1f'

var pusher = new Pusher(API_KEY);
var channel = pusher.subscribe("ticker.160");
channel.bind("message", function(data) {
    console.log(data);
    var topbuy = data.trade.topbuy;
    console.log("Price: ", topbuy.price,
            "Quantity:", topbuy.quantity,
            "Timestamp:", data.trade.timestamp);
});

错误消息:

$ node pusher.js

c:\xampp\htdocs\projects\psher\node_modules\pusher.js:9
var pusher = new Pusher(API_KEY);
                 ^
ReferenceError: Pusher is not defined
    at Object.<anonymous> (c:\xampp\htdocs\projects\psher\node_mo
dules\pusher.js:9:18)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

我以为require("insert node_module")认为libary是由nodeJS加载的,可以用吗?

任何建议我做错了什么?

感谢您的回答!

1 个答案:

答案 0 :(得分:2)

您想要保存require命令的返回值 - 这将是推送器模块的导出。如果pusher导出构造函数,你只想写:

var Pusher = require('pusher-client');

然后应该按照您尝试的方式定义Pusher并使其可用。 (顺便说一句,我从链接的推动模块自述文件中复制了该行)

(另外:不要依赖行末尾的自动分号插入,这是不好的做法。)