123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- const fs = require('fs');
- const path = require('path');
- /**
- * 检测制定目录是否存在,如果不存在就生成,如果是文件就报错, 多次同一目录检测只会执行一次
- * @param {string} dirname 上传文件的目录
- */
- async function mkdir(dirname) {
- let state = await new Promise((resolve, reject) => {
- fs.stat(dirname, (err, stats) => {
- if (err) {
- resolve(-1);
- } else if (stats.isDirectory()) {
- resolve(0);
- } else {
- resolve(1);
- }
- });
- });
-
- if (state === 1) {
- throw `-------------upload module error ${dirname} is File---------`;
- } else if (state === 0) {
- return;
- }
- await mkdir(path.dirname(dirname));
- try {
- await new Promise((resolve, reject) => {
- fs.mkdir(dirname, (err) => {
- if (err) {
- reject(err);
- } else {
- resolve();
- }
- });
- });
- } catch(e) {
- throw `----------upload module create dir ${dirname} error ${e.message}------------`;
- }
- }
- module.exports = exports = mkdir;
|