尝试保存到数据库的链接时,我最终保存了[对象承诺]

时间:2018-12-07 23:14:46

标签: node.js mongodb asynchronous cloudinary

我正在将图像上传到cloudinary,并将上传的链接保存到我的mongo数据库中。

代码

function createProjects(cb) {
    async.parallel([
       function(callback) {
          projectCreate('Project name', '5bdee2734fbaaf1f1804f497',  cloudinary.v2.uploader.upload("circuit.jpg", function(error, result){console.log(result.url, error)} ), callback);},

保存“ [object Promise]”而不是保存指向图像的链接。我了解这是因为javascript的异步特性。

我的新目标是在将数据保存到数据库之前运行cloudinary函数并返回链接。

新方法代码

function(callback) {
      projectCreate('NEW ONE two', '5bdee2734fbaaf1f1804f497', new Promise(function(resolve, reject){
            cloudinary.v2.uploader.upload("circuit.jpg", 
                                            function(error, result){
                                          //resolve(result.url);
                                          resolve(result);
                                        })}).then(function(value) 
                                        {return(value);
                                        }) , callback);
                                         }

这将导致以下错误

  

最终错误:ValidationError:pictures.0.data:在路径“数据”的值“承诺{}”的强制转换为字符串失败   我尝试了许多方法来解决类似stackoverflow上的类似问题,但这些方法也都以错误或[object Promise]保存而告终。

非常感谢您提供的帮助。

0 个答案:

没有答案