我如何使用koa中的“http”模块?

我想在使用koajs框架的节点上使用http.request。 有什么办法可以像下面展示的那样使用它?

var http = require('http'); var result = yield http.request(options); 

大概你面对的问题是, http.request需要一个callback,而不是返回一个承诺,所以你不能从koa yield 。 您需要将http.request包装在一个返回承诺的函数中,并将承诺parsing挂钩到callback中,同时还将承诺拒绝挂钩到error handling程序中。

 function request(opts, body) { return new Promise((resolve, reject) => { body.pipe(http.request(opts, resolve)) .on('error', reject); }); } 

后来在你的koafunction…

 var response = yield request(opts, body); 

有这么多的可能的变化,我不能接近列出所有,但这是基本的想法:)