RxJS node-oauth简单的获取请求失败
处理一个简单的(相对)RxJS演示/testing代码,这个演示/testing代码将Twitter的一个API调用和一个MongoDB请求压缩成一个单独的observable。
为了能够做出一个Twitter的Api调用,你需要通过Oauth进行身份validation。 我find了node-oauth库来validation节点请求:
var oauth = new OAuth.OAuth( 'https://api.twitter.com/oauth/request_token', 'https://api.twitter.com/oauth/access_token', 'key', 'secret', '1.0A', null, 'HMAC-SHA1' );
然后我用Oauth get
创build一个新的Observable Oauth get
方法从Twitter获取地点:
var twitterStream = Rx.Observable.fromNodeCallback(oauth.get)('https://api.twitter.com/1.1/trends/place.json?id=23424977', 'access-token', 'token');
来自MongoDB的另一个stream:
Rx.Node.fromStream(Order.find().stream());
最后一步压缩他们:
var getNewList = Rx.Observable .zip(flickrStream, orderStream, function(user, order) { return {user: user, order: order}; }); getNewList.subscribe(function(response) { // render `response` console.log(response); });
尽pipe代码似乎对我来说,当我通过节点执行它时,下面的消息被打印到控制台:
TypeError: Object #<Object> has no method '_performSecureRequest' at exports.OAuth.get (/.../node_modules/oauth/lib/oauth.js:487:15) at /.../node_modules/rx/dist/rx.all.js:5504:14
我可能做了某事 使用Twitter请求创build新的Observable时出错。 另外; 我在进行Twitter调用时单独testing了代码,没有RxJS和MongoDB查询,这些工作没有任何问题。 也从fromCallback
更改为fromCallback
没有任何区别。
提供context
参数(请参阅文档 )或绑定获取上下文:
Rx.Observable.fromNodeCallback(oauth.get.bind(oauth))
要么
Rx.Observable.fromNodeCallback(oauth.get, oauth)