Объем Javascript с загрузкой файлов - PullRequest
0 голосов
/ 29 сентября 2018

Я загружаю файлы, они загружаются нормально, теперь я пытаюсь сохранить идентификаторы, полученные из облака, и поместить их в базу данных.Я сталкиваюсь с тем, что мне кажется проблемой с областью видимости, модуль, который я использую, использует обещания, поэтому я думаю, что это должно решить проблему, но не так много.

Это может принять много файлов, и я хочучтобы сделать один вызов БД, поэтому я пытаюсь добавить файлы в один массив для отправки в БД, когда придет время, и я не уверен, куда поместить этот код.

Я добавил немного 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, я получаю это смешанное, и я не уверен, что япропустил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...