[英]Node FS ENOENT error
我正在嘗試使此腳本創建目錄,然后在其中編寫內容。 簡單的XML轉儲和東西。
我無法讓FS正常工作。 isDirectory,createDirectory,readFile,writeFile。 我在另一篇SO文章中的閱讀內容建議對fs.stat()進行很多更改。
我已經設置了該文件夾的權限,因此它應該不會出現任何權限問題(Windows)。
我的第一步是檢查以前的文件並創建新文件或打開它們:
. . .
var logsDir = './logs/';
var logAccess = logsDir + 'stuff.log';
try { // The code says its an ENOENT
console.log(fs.statSync(logsDir))
if (!fs.statSync(logsDir).isDirectory()) {
fs.mkdirSync(logsDir);
}
} catch (e) {
console.error('Error ' + e.code);
}
try { // Another ENOENT
if (!fs.statSync(logAccess).isFile()) {
fs.writeFileSync(logAccess, 'die', 'utf8');
}
//data = fs.readFileSync(logAccess, 'utf8');
} catch (e) {
console.error('Error errors are dumb');
}
. . .
fs.stat(logsDir, function(err,stat){
try{
if(err)
{
var e = err.code;
throw e;
}
}
catch(e)
{
if(e == 'ENOENT')
{
fs.mkdir(logsDir);
}
else
{
console.log('Some other error ' + err.code);
}
}
});
fs.stat(logAccess, function(err,stat){
try{
if(err)
{
var e = err.code;
throw e;
}
}
catch(e)
{
if(e == 'ENOENT')
{
fs.writeFileSync(logAccess, 'die', 'utf8');
}
else
{
console.log('Some other error ' + err.code);
}
}
});
var fs = require('fs');
var express = require("express");
var app = express();
var logsDir = './logs/';
var logAccess = logsDir + 'stuff.log';
function directoryExits(logsDir){
try {
return fs.statSync(logsDir).isDirectory();
} catch (err) {
return false;
}
}
function fileExits(logAccess){
try {
return fs.statSync(logAccess).isFile();
} catch (err) {
return false;
}
}
var statsDir = directoryExits(logsDir);
var statsFile = fileExits(logAccess);
if(!statsDir)
{
fs.mkdirSync(logsDir);
console.log("Directory Created")
}
else
console.log('Directory already exists');
if(!statsFile)
{
fs.writeFileSync(logAccess, 'die', 'utf8');
}
else
console.log('File already exists');
app.listen(4000, function(){
console.log('Server running ');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.