在NodeJS中编写通用HTTP请求

时间:2018-03-31 15:31:40

标签: javascript node.js rest api http

我正在制作一个应用程序,可以为不同的API创建多个HTTP请求,并希望抽象出#34;发送"并且"得到"部分数据到可以导出的效用函数中。它应该是异步的。到目前为止,我创建了以下内容,但由于request.end()需要在某个地方声明,所以它不会起作用,而且我被困在这里。谢谢!

注意:结果数据应该能够轻松返回到其他某个功能,以便稍后再进行其他操作。

exports.handleHttpRequests = (url) => {
    return new Promise((resolve, reject) => {
        const request = http.request(url, response => {
            let chunks = [];
            res.on('data', chunk => {
                chunks.push(chunk);
            });

            res.on('end', () => {
                let body = Buffer.concat(chunks).toString();
                resolve(body);
            })
        })
    }).then(data => {
        return data;
    });
}

1 个答案:

答案 0 :(得分:0)

嘿,你已经完成了所有工作,只需在你的新Promise回调中调用request.end();也处理错误。做你想做的决心,拒绝。

$files = (glob("../catalog-reseller/".$actualcat."/*.jpg")); 
usort($files, create_function('$a,$b', 'return filemtime($b) - filemtime($a);'));
foreach (array_slice($files, $nr) as $filename) 
{
    $x=$x+1;
    $pieces = explode('/', $filename);
    $cutname = implode('/', array_slice($pieces, 4, 5));
    $cutname=substr($cutname, 0,-4);
    echo'
        <a href="'.$filename.'" data-rel="lightcase:gallery" title="'.$cutname.'">
            <img src="'.$filename.'" alt="">
        </a>';
    if($x==50){break;}
}