如何使用请求库和Bluebird发送发布请求?
所以inheritance人我的设置:
var Promise = require("bluebird"); var request = Promise.promisify(require('request'));
这工作:
request('url')
它返回一个承诺
这不:
request.post('url', {form: {type: 'artist'}})
给我这个错误:
TypeError: Object function promisified(_arg0,_arg1) { ... }has no method 'post' at /Users/beamer30/projects/wevo/controllers/music.js:85:30 at Array.map (native) at MusicSearch.spotifyRelated (/Users/beamer30/projects/wevo/controllers/music.js:84:22) at MusicSearch.findRelatedArtists (/Users/beamer30/projects/wevo/controllers/music.js:48:7) at musicController.search (/Users/beamer30/projects/wevo/controllers/music.js:100:17) at Layer.handle [as handle_request] (/Users/beamer30/projects/wevo/node_modules/express/lib/router/layer.js:76:5) at next (/Users/beamer30/projects/wevo/node_modules/express/lib/router/route.js:100:13) at Route.dispatch (/Users/beamer30/projects/wevo/node_modules/express/lib/router/route.js:81:3) at Layer.handle [as handle_request] (/Users/beamer30/projects/wevo/node_modules/express/lib/router/layer.js:76:5) at /Users/beamer30/projects/wevo/node_modules/express/lib/router/index.js:227:24
关于如何使这项工作的任何想法? 什么是正确的方法来做到这一点?
当您提交请求返回时,您只会提交返回的函数。 相反 – 使用promisifyAll
这promisifies整个对象。 由于request
是你没有得到一个错误。
var Promise = require("bluebird"); var request = Promise.promisifyAll(require('request')); // this will work