Я создал массив строк и поместил их в массив schoolsArray.Я хочу иметь возможность создавать текстовые файлы для каждой школы, используя fs.
По какой-то причине я просто не могу заставить это работать.Похоже, проблема в том, что в качестве строки в имени пути используется значение schoolsArray [0].Пожалуйста, взгляните на мою серию тестов.Этот первый фрагмент кода все работает, но я добавил его, чтобы помочь вам понять, что я импортирую 'fs' и сначала создаю каталог.
Обновление - добавлено создание schoolArray для каждого запроса
var fs = require('fs');
// Read all schools into array (read from text file)
const schoolFile = "./assets/dispatch/state/schools/county_name.txt";
fileInput = fs.readFileSync(schoolFile, "utf-8");
const schoolArray = fileInput.split("\n");
// Variable for chat logs directory
const chatDir = "./chat-logs";
// Create directory if it doesn't exist
if(!fs.existsSync(chatDir)){
fs.mkdirSync(chatDir);
}
Каталог создан, теперь попробуйте выполнить попытку файла # 1
var schoolTextFile = chatDir + "/" + schoolArray[0] + ".txt";
fs.writeFileSync(schoolTextFile, "");
Uncaught Error: ENOENT: no such file or directory, open 'C:\Users\PC\Desktop\Node_Webkit_Test\chat-logs\Test School Name.txt'
at Object.fs.openSync (fs.js:653:18)
at Object.fs.writeFileSync (fs.js:1300:33)
Хорошо, по какой-то причине это не работает.Попытка № 2 - я пришел к выводу, что значение schoolArray [0] не читается как строка, поэтому я попытался это сделать:
var schoolTextFile = chatDir + "/" + toString(schoolArray[0]) + ".txt";
fs.writeFileSync(schoolTextFile, "");
Здесь нет ошибок, но выводнеопределенный объект:
Попытка № 3 состояла в том, чтобы просто попробовать текстовую строку вместо использования значения из моего массива.Это работало в точности так, как задумывалось.
var schoolTextFile = chatDir + "/" + "some Text 1234" + ".txt";
fs.writeFileSync(schoolTextFile, "");
Таким образом, проблема точно связана со значением schoolArray [0], вводимым в путь,Даже глупо даже тестировать, но я все равно это сделал ...
var somestring = "some text 1234";
console.log(typeof somestring);
// The log says that this is a string.
console.log(typeof schoolArray[0]);
// The log says that this is a string.
Итак, почему одна строка работает здесь, а другая вызывает проблемы с путями?Заранее спасибо!