1

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

但是,当我需要该模块时,出现以下错误

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

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

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 在非对象上调用。

使用超级代理时,我只是这样做

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

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

添加了跟踪

2) Login 'Username:Password' test: POST with a valid logins logins into AM with a valid login: TypeError: Object.keys called on non-object at Function.keys (native) at 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。

我总是在代理的 .query() 状态中多次在文件 loginUserPass 中获得此跟踪。当我在 OauthAM.js 中添加 superagent-ouath 要求时会发生这种情况。

4

2 回答 2

0

在使用npm init. 此 GitHub 问题讨论建议将以下行添加到package.json项目文件(即您尝试创建的项目,而不是您尝试安装的项目):

 "dependencies": {}

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

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

于 2014-02-26T14:37:48.033 回答
0

您是否npm install已从 npm 检索所有模块依赖项?似乎superagent的依赖项可能不可用?

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

这样,您将获得超级代理模块所需的所有依赖项。

于 2013-02-04T09:02:33.307 回答