首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >handel从dropbix-api返回对象(nodejs和express)

handel从dropbix-api返回对象(nodejs和express)
EN

Stack Overflow用户
提问于 2018-06-07 04:18:11
回答 1查看 71关注 0票数 0

我正在尝试执行一个简单的操作,如上传文件到dropbox,文件被成功上传,我需要的是返回的答案,包括文件名,大小,路径等。

我知道我在异步呼叫中输了,我想在这里得到一些帮助:

exports.uploadFile =  async function () {
    fs.readFile('./text.txt',  function (err, contents) {
                if (err) {
                     console.log('Error: ', err);
                }
                    uploadFile(contents);
            });
          } ;
async function  uploadFile(fileCont) {
         let dbx =  new Dropbox({ accessToken: APP_KEY });
         await dbx.filesUpload({ path: '/basic4.txt', contents: fileCont })
         .then(function (response) {
           console.log( response);
           return response;
         })
        .catch(function (err) {
             console.log(err);
         });
}

我想把结果返回给fron,所以我用了这部分:

DriveService.uploadFile()
    .then((success)=>{
        return res.status(200).json({success:true,data:success,message:'list of files recived'});
})
.catch((error)=>{
    return res.status(400).json({success:false,data:{},message:error.message});
})

问题是,自从我在异步森林中迷路后,成功总是空洞的。

有人能给点建议吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 04:27:01

不确定异步中的解决方案,但是,您可以像这样使用回调:

exports.uploadFile =  async function (cb) {
    fs.readFile('./text.txt',  function (err, contents) {
                if (err) {
                     console.log('Error: ', err);
                }
                    uploadFile(contents,cb);
            });
          } ;


async function  uploadFile(fileCont,cb) {
         let dbx =  new Dropbox({ accessToken: APP_KEY });
         await dbx.filesUpload({ path: '/basic4.txt', contents: fileCont })
         .then(function (response) {
           console.log( response);
           cb(response);//Pass response in callback
         })
        .catch(function (err) {
             console.log(err);
         });
}
DriveService.uploadFile(function(success) {//this callback will be called from async 
 return res.status(200).json({success:true,data:success,message:'list of files recived')
})
.catch((error)=>{
    return res.status(400).json({success:false,data:{},message:error.message});
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50728875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档