gpt4 book ai didi

javascript - 如何在 fs.stat 回调中运行函数

转载 作者:行者123 更新时间:2023-11-30 21:20:01 24 4
gpt4 key购买 nike

我正在使用 npm papercut https://www.npmjs.com/package/papercut用于图像上传,这是保存图像的功能(完美)。

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,我想创建一个目录,我希望 uploader.processfs 中运行。 stat 回调。所以保存的图像进入 fs.stat 创建的目录。这是我到目前为止的代码,我不知道将 uploader.process 函数放在哪里,所以回调会调用它。

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

});

最佳答案

你有两个选择,让你的调用同步。或者使用 promise 。 (也许您还有其他选择,但我希望这些对您有所帮助)。

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

检查文档,在异步/同步两种情况下,您可能应该尝试/捕获 mkdir。

关于javascript - 如何在 fs.stat 回调中运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45286488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com