nodejs async waterfall在第二个函数中使用mongoose findOneAndUpdate

问题描述 投票:0回答:1

我想用async瀑布上传文件然后返回远程文件路径并将其传递给第二个函数mongoose findOneAndUpdate以保存用户文档的路径。

async.waterfall({
    uploadedFile: function (acb) { fileUpload(req, res, acb); },
    user: function (acb) { 
        Users.findOneAndUpdate({ uuid: req.user.uuid }, 
            { $set: {
                file: 'RESULTFROMWATERFALL',
                email: req.body.email,
                name: req.body.name,
    } }).exec(acb); }
}, function (err, data) {
    if (err) {
        console.log(err);
    }
    console.log('result: ', data)
});

我坚持这个,不知道如何从第一个函数获取结果并将其传递给mongoose查找和更新函数。

如果使用隔离的上传功能,它的工作方式如下:

fileUpload(req, res, function(err, result) {
        console.log('i can see result here: ', result) // https//some.remote.path/file.txt
    })

有人可以帮我解决这个async.waterfall的例子吗?

javascript node.js mongoose async.js
1个回答
2
投票

试试这个:-

async.waterfall([
(callback) => {
    fileUpload(req, res, (err,data)=>{
        callback(err, data);
    });
},
(updateURL, callback)=>{
    Users.findOneAndUpdate({ uuid: req.user.uuid },
        { $set: {
                file: 'RESULTFROMWATERFALL',
                email: req.body.email,
                name: req.body.name,
            } }).exec(callback); 
}
}], (err, data) => {
if (err) {
    console.log(err);
}
console.log('result: ', data)
});
© www.soinside.com 2019 - 2024. All rights reserved.