2017-03-29 4 views
0

は、だから私は、私はと満足していますrequestjsを使用して開始requirejsでJSON本体をパイピングが、私は疑問に思う:にのみ

function foo(url) { 
    return request({ "url": url, "json": true }) 
} 
let result = foo("https://jsonplaceholder.typicode.com/posts/1") 
result.pipe(process.stdout) 
result.on('data', console.log) 
    私はオブジェクト自体にアクセスすることはできませんので、私だけでなく、身体
  • と上がだから私はuのできない

をJSONに応答を解析するために、私の仕様を尊重していないストリーミングすることができpipe

  • 私が受け取ったjsonにしかアクセスできない人はいますか?もちろん、私はJSON.parseを使うことができますが、私はレスポンス(約束に似ています)を操作するための簡単な方法を探しています。

  • 答えて

    1

    ストリームを使用する必要があるのはなぜですか?あなたはいつでも約束でリクエストをラップすることができます。

    これは非常に高いレベルですが、うまくいけば、これは正しい経路であなたを得ることができます。

    function makeRequest(params) { 
        return Promise((resolve, reject) => { 
        request(params, (err, response) => { 
         if (err) { 
         return reject(err); 
         } 
         return resolve(response); 
        }; 
        }); 
    } 
    
    
    const params = { 
        url: 'foo.com', 
        method: 'GET', 
        json: true, 
    }; 
    
    makeRequest(params) 
        .then(response => { 
        if (response.statusCode === 200) { 
         return Promise.resolve(response.body); 
        } else if (response.statucCode === 404) { 
         const err = { 
         message: 'Not Found', 
         code: 404, 
         }; 
         return Promise.reject(err); 
        } 
        }) 
        .then(body => // do something fun with data) 
        .catch(err => // handle error); 
    
    関連する問題