我继承了一个node.js应用程序,并且试图通过修复问题来伪装自己的方式。在达到AWS存储桶的1000个文件页面限制之前,一切工作都很好。我已经尝试过使用.eachPage()标准和异步进程以及.hasNextPage()进程,但无法使其正常工作。我觉得我的尝试最接近这个版本。在我看来,这似乎很有意义,但它只会提取前1000个文件。有人可以帮我指出正确的方向,以便加载这些额外的数据页吗?
viewControllers
答案 0 :(得分:0)
似乎您在这里有一些冲突的JS概念。当您将异步样式与三个参数一起使用时,只要调用done()
,下一页就会立即执行-由于您立即执行了此操作,因此下一页会立即开始执行,因此对return
之后。
您还为文件的每一页调用res.render()
,这可能不是您想要的,并且为什么看起来只列出了1000个文件(实际上您渲染了前1000个文件,然后继续做很多工作发送结果后在后台!)。我会推荐以下内容:
var files = [];
s3.listObjects({
Bucket: config.aws.s3.bucket
}).eachPage(function(error, data){
if(err) return;
files.push(data.Contents);
});
// Now do something with all the files
res.render('whatever',files);