2017-07-28 52 views
0

所以我的目标 - >编写一个脚本来从csv中提取数据并将其转储到我的数据库中。所以一切似乎都在起作用,除了我无法在不擦除任何数据(或不全部写入数据库)的情况下正确退出进程。Node.js,Mongodb,Monk,PapaParse,Bluebird,DB不会更新

db.then((db) => { 
    console.log('connected to db'); 
    const creators = db.get('creators'); 

    let files = fs.readdirAsync(folder) 
    .catch(err => { 
     exitOnErr(err, 'error reading directory'); 
    }) 
    .map(filename => { 
     return processFile(filename) 
     .then(content => { 
      return Papa.parsePromise(content); 
     }) 
     .then(results => { 
      db_add(results, creators); 
     }); 
    }) 
    .then(() => { 
     console.log('Completed parsing files..'); 
     /* close db and exit the process -> if I do this here, 
      then everything exits without doing anything, but if 
      I let the process keep running, then the database 
      gets properly updated */ 
    }); 
}).catch((err) => { 
    exitOnErr(err, 'error connecting to db'); 
}); 

哪里是合适的地方关闭数据库并退出进程?无法弄清楚这里的承诺方案在哪里适合它。

回答

0

想通了。更新后的代码:

db.then((db) => { 
    console.log('connected to db'); 
    const creators = db.get('creators'); 

    return fs.readdirAsync(folder) 
    .catch(err => { 
     exitOnErr(err, 'error reading directory'); 
    }) 
    .map(filename => { 
     return processFile(filename) 
     .then(content => { 
      return Papa.parsePromise(content); 
     }) 
     .then(results => { 
      return db_add(results, creators); 
     }); 
    }); 
}).catch((err) => { 
    exitOnErr(err, 'error connecting to db'); 
}).then(() => { 
    console.log('Completed parsing files...'); 
    closeAndExit(0); 
}); 

没有正确地回复链上的承诺。