【发布时间】:2015-04-14 10:01:57
【问题描述】:
我目前正在启动我的 NodeJS 应用程序,并且我有以下 if 语句:
Error: ENOENT, no such file or directory './realworks/objects/'
at Object.fs.mkdirSync (fs.js:654:18)
at Object.module.exports.StartScript (/home/nodeusr/huizenier.nl/realworks.js:294:7)
然而,奇怪的是该文件夹已经存在,但是在以下 sn-p 上检查失败:
if(fs.existsSync(objectPath)) {
var existingObjects = fs.readdirSync(objectPath);
existingObjects.forEach(function (objectFile) {
var object = JSON.parse(fs.readFileSync(objectPath+objectFile));
actualObjects[object.ObjectCode] = object;
});
}else{
fs.mkdirSync(objectPath); // << this is line 294
}
我不明白在创建目录时no such file or directory 是如何出现的。
【问题讨论】:
-
让我看看你的objectPath,请
-
对象路径是错误返回的,
./realworks/objects/ -
您是否尝试递归地创建这些目录? fs.mkdir() 不能或不能这样做。我的猜测是文件夹“realworks”还不存在,这就是它抛出的原因。如果是这种情况,请尝试使用:npmjs.com/package/mkdirp
-
@Charminbear 两个目录(父目录和子目录)实际上已经存在。所以第一个问题是 fs.existsSync 似乎失败了,然后创建一个已经存在的目录失败了。
-
./realworks/objects/是相对于节点可执行文件而不是你的脚本,只是说。
标签: node.js