javascript - Nodejs异步 waterfall 在第二个函数中使用mongoose findOneAndUpdate

标签 javascript node.js mongoose async.js

我想使用异步 waterfall 上传文件,然后返回远程文件路径并将其传递给第二个函数,即 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 示例吗?

最佳答案

试试这个:-

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)
});

关于javascript - Nodejs异步 waterfall 在第二个函数中使用mongoose findOneAndUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49097114/

相关文章:

javascript - 无法将 jwt token 添加到 node.js 响应

node.js - 尝试使用唯一索引保存 Mongoose 文档时, Node 服务器崩溃

javascript - 如何制作 sencha touch 应用程序的 Apk

javascript - anchor 标记不工作 Chrome 扩展

javascript - 将本地存储从 swift 注入(inject)到 WKWebview

node.js - Socket.io、Node、Cordova,我在客户端接收器中没有收到消息

Node.js util.inherits 问题

适用于客户端和 Node.js 服务器的 JavaScript 验证?

javascript - 抛出新错误 ('Mongoose is not connected' );

node.js - Mongoose 错误 - 使用这些参数调用时,必须在 where() 之后使用 elemMatch()