节点expressionaws s3.listBuckets在页面呈现后执行callback
列表带有callback的桶:
router.get('/', function(request,response) { s3.listBuckets(function(error, data) { if (error) { console.log(error); } else { console.log(data.Buckets[0].Name);//since i have only one bucket bucket = data.Buckets[0].name; } }); response.render('index', { mybucket:bucket }); console.log("rendered page"); });
输出:
rendered page //rendered page with mybucket:'' empty GET /getbucket 200 7.827 ms - 787 lvresults //bucketname displayed after rendering in console
bucketname只能在页面呈现后访问
您应该访问callback函数内的数据。
router.get('/', function(request,response) { s3.listBuckets(function(error, data) { if (error) { console.log(error); } else { console.log(data.Buckets[0].Name); bucket = data.Buckets[0].name; console.log("rendered page"); response.render('index', { mybucket:bucket }); } }); });
为了更好地理解asynchronous行为, 这个链接将会很有帮助。