我如何使用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);
有这么多的可能的变化,我不能接近列出所有,但这是基本的想法:)