如何在fs.statcallback函数中运行

我使用npm剪纸https://www.npmjs.com/package/papercut图片上传,这是保存图像(完美的作品)的function。

uploader.process('image1', file.path, function(images){ console.log(images.avatar); // '/images/uploads/image1-avatar.jpg' console.log(images.small); // '/images/uploads/image1-small.jpg' }) 

和我使用文件系统模块方法fs.stat ,我想创build一个目录,我想uploader.processfs.statcallback内运行。 所以得到保存的图像进入fs.stat创build的目录。 这是我到目前为止我不知道在哪里把uploader.process函数的代码,所以callback调用它。

 fs.stat(`${tenantId}/`, function (err, stats){ if (err) { // Directory doesn't exist or something. console.log('Folder doesn\'t exist, so I made the folder ' + `${tenantId}/`); return fs.mkdir(`assets/${tenantId}`, callback); } uploader.process('image1', file.path, function(images){ console.log(images.avatar); // '/images/uploads/image1-avatar.jpg' console.log(images.small); // '/images/uploads/image1-small.jpg' }) }); 

你有两个select,让你的电话同步。 或使用承诺。 (也许你有其他的select,但我希望这些会有所帮助)。

 // Synchronous way // Check for node docs: https://nodejs.org/api/fs.html#fs_fs_statsync_path const stats = fs.statSync(`${tenantId}/`); // Check for stats class def: https://nodejs.org/api/fs.html#fs_class_fs_stats if (!stats.isDirectory()) { // Node docs: https://nodejs.org/api/fs.html#fs_fs_mkdirsync_path_mode fs.mkdirSync(`assets/${tenantId}`); } uploader.process('image1', file.path, function(images){ console.log(images.avatar); // '/images/uploads/image1-avatar.jpg' console.log(images.small); // '/images/uploads/image1-small.jpg' }); // Async way fs.stat(`${tenantId}/`, (err, stats) => { const localPromise = new Promise((resolve, reject) => { if (err) { fs.mkdir(`assets/${tenantId}`, () => { resolve(true) }); } resolve(true); }); localPromise.then(result => { uploader.process('image1', file.path, function(images){ console.log(images.avatar); // '/images/uploads/image1-avatar.jpg' console.log(images.small); // '/images/uploads/image1-small.jpg' }); }); });