我了解如何使用 Node.js + 请求加载远程文件,然后我可以读取它并返回 png 二进制 blob。有没有一种优雅的方式来完成一个请求(甚至是单行)
就像是:
http.createServer(function(req, res) {
res.writeHead(200, {
'Content-Type': 'image/png'
});
var picWrite = fs.createWriteStream(local);
var picFetch = fs.createReadStream(local);
picStream.on('close', function() {
console.log("file loaded");
});
request(remote).pipe(picWrite).pipe(picFetch).pipe(res);
})
明确一点:我的目标是从 CDN 加载远程文件,将其缓存到本地服务器,然后在原始请求中返回文件。在以后的请求中,我fs.exists()
先检查它是否存在。
这是我迄今为止的最大努力:
http.createServer(function(req, res) {
var file = fs.createWriteStream(local);
request.get(remote).pipe(file).on('close', function() {
res.end(fs.readFileSync(local), 'binary');
});
})