我正在上传文件,它们可以上传,现在,我试图保存从云中获取的ID并将其放入db中。我遇到了我认为是范围界定问题的问题,我正在使用的模块使用了Promise,所以我认为这应该解决问题,但不会太多。
这可以接受许多文件,我想进行一个数据库调用,所以我试图将文件追加到单个数组中,以在时间到了时推送到数据库,而我不确定将代码放在哪里。 / p>
我添加了一些console.log
来看看是什么。
const uploadFiles = (req,res,next)=> {
let b2fileIDs = [];
upload(req,res,function(err){
req.files.forEach(function(image){
var b2accountId;
var b2authToken;
var b2uploadURL;
//console.log(image);
b2.authorize()
.then(function(auth) {
//console.log("hit authorize");
b2accountId = auth.accountId;
b2authToken = auth.authorizationToken;
//console.log(b2authToken);
}).then(function(ret){
b2.getUploadUrl(process.env.B2BUCKET_ID)
.then(function(cb){
//console.log(cb);
//console.log("hit getUploadUrl")
//console.log(cb.uploadUrl)
b2uploadURL = cb.uploadUrl;
b2authToken = cb.authorizationToken;
})
.then(function(cb){
//console.log(b2authToken);
b2.uploadFile({
uploadUrl: b2uploadURL,
uploadAuthToken: b2authToken,
filename: 'test',
data: image.buffer
}).then(function(cb){
//console.log(cb.fileId);
//console.log(req.body);
b2fileIDs.push(cb.fileId);
console.log(b2fileIDs);
})
}).catch((error) => {
console.log("This is an ERROR " + error );
});
console.log("1");
})
console.log('2');
})
console.log('3');
})
console.log('4');
let savedPhotoLinks = {};
let links = {};
console.log(b2fileIDs + " This is the data");
b2fileIDs.forEach(function(link){
links.push('link: = ' + link);
});
console.log(links);
// Event.findByIdAndUpdate(req.body.mongo_event_id,{ $push: savedPhotoLinks}, (err, updatedEvent) => {
// if (err) {
// console.log(err);
// res.redirect("/event");
// } else {
// res.redirect("/event/" + req.params.id);
// }
// })
res.send("WooHoo, its in the cloud!");
};
控制台显示
2
2
2
3
1
1
1
[ '4_z32a825f2329e511a56990e16_f106d0a836e6d26b7_d20180929_m054906_c001_v0001097_t0026' ]
[ '4_z32a825f2329e511a56990e16_f106d0a836e6d26b7_d20180929_m054906_c001_v0001097_t0026',
因此,正如您所看到的,而不是得到111,222,3,我将它弄混了,我不确定我错过了什么。