我正在使用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。
答案 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