filemanager
디렉토리 (/
) 코드를 사용하면 코드가 제대로 작동하지만 파일 (/index.html
)을 호출하면 오류가 발생합니다.자바 스크립트 약속 및 if/else 문
if/else 문 (isDir
이 false
을 반환하는 경우에도 readdir
이 실행 됨)의 문제가 표시되지만 약속과 함께 올바르게 사용하는 방법을 알지 못합니다.
var fs = require('fs'),
Q = require('q'),
readdir = Q.denodeify(fs.readdir),
readFile = Q.denodeify(fs.readFile);
function isDir(path) {
return Q.nfcall(fs.stat, __dirname + path)
.then(function (stats) {
if (stats.isDirectory()) {
return true;
} else {
return false;
}
});
}
function filemanager(path) {
if (isDir(path)) {
return readdir(__dirname + path)
.then(function (files) {
return files.map(function (file) {
return ...;
});
})
.then(Q.all);
} else {
return readFile(__dirname + path, 'utf-8')
.then(function (content) {
return ...;
});
}
}
filemanager('/').done(
function (data) {
...
},
function (err) {
...
}
);