作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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.process
在 fs 中运行。 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/
我是一名优秀的程序员,十分优秀!