如何在node.js中要求插件模块?

时间:2013-02-01 12:30:56

标签: javascript node.js oauth-2.0 mocha

我正在使用Mocha框架和SuperAgent模块测试服务器(不是由我完成),但是我需要测试服务器的Ouath协议。 我找到了superagent-oauth模块以便发出签名请求。

但是,当我需要模块时,我收到以下错误

  

TypeError:在非对象上调用Object.keys

我的代码,遵循superagent-oauth repo中的自述文件,它是

var superagent = require('superagent');
var log = require('./log.js');
var Oauth = require('node-oauth');
var oauth = new Oauth({..});

require('superagent-oauth')(superagent);

然后在运行测试时,我得到了在非对象上调用的TypeError:Object.keys。

使用superagent时我只是做

var superagent = require('superagent');
agent = superagent.agent();

但我不知道如何使用/要求superagent-oauth模块。那么正确的方法是什么? 谢谢

添加了痕迹

  

2)登录'用户名:密码'测试:使用有效登录登录的POST   有效登录的AM:        TypeError:在非对象上调用Object.keys         在Function.keys(本机)         在Request.query(/home/maldo/testingAM/node_modules/superagent-oauth/superagent-oauth.js:22:23)         在上下文。 (/home/maldo/testingAM/loginUserPass.js:74:6)         在Test.Runnable.run(/home/maldo/node_modules/mocha/lib/runnable.js:196:15)         在Runner.runTest(/home/maldo/node_modules/mocha/lib/runner.js:343:10)         在Runner.runTests.next(/home/maldo/node_modules/mocha/lib/runner.js:389:12)         在下一个(/home/maldo/node_modules/mocha/lib/runner.js:269:14)         在Runner.hooks(/home/maldo/node_modules/mocha/lib/runner.js:278:7)         在下一个(/home/maldo/node_modules/mocha/lib/runner.js:226:23)         在Runner.hook(/home/maldo/node_modules/mocha/lib/runner.js:246:5)         at process.startup.processNextTick.process._tickCallback(node.js:244:9)

我在loginUserPass文件中有这样的跟踪,总是在代理的.query()statament中。这种情况发生在OauthAM.js中我添加了superagent-ouath require。

2 个答案:

答案 0 :(得分:0)

您是否已完成npm install从npm检索所有模块依赖项?好像superagent的依赖关系似乎不可用?

新的依赖项随package.json一起安装(并放入npm install superagent --save文件)。

这样你就可以获得superagent模块所需的所有依赖项。

答案 1 :(得分:0)

在使用npm init创建的新项目上安装誓言时遇到相同的错误消息。这个GitHub问题讨论建议将以下行添加到项目的package.json文件中(即您尝试创建的项目,而不是您尝试安装的项目):

 "dependencies": {}

这解决了我。当然,您提到您在package.json中安装了依赖项,因此对于可能搜索错误消息的其他人来说,这个答案更多。

https://github.com/stephenplusplus/grunt-bower-install/issues/9