Я хочу создать простую систему журналов, которая печатает строку перед прошлой строкой в txt файл с помощью Node.js, но я не знаю, как работает файловая система из Node.js. Может кто-нибудь объяснить это?
Node.js Запишите строку в файл .txt
Ответ 1
Вставка данных в середину текстового файла - непростая задача. Если возможно, вы должны добавить его в конец своего файла.
Самый простой способ добавить данные в некоторый текстовый файл - использовать встроенную fs.appendFile(filename, data[, options], callback)
из fs
модуль:
var fs = require('fs')
fs.appendFile('log.txt', 'new data', function (err) {
if (err) {
// append failed
} else {
// done
}
})
Но если вы хотите несколько раз записывать данные в файл журнала, тогда лучше использовать fs.createWriteStream(path[, options])
function:
var fs = require('fs')
var logger = fs.createWriteStream('log.txt', {
flags: 'a' // 'a' means appending (old data will be preserved)
})
logger.write('some data') // append string to your file
logger.write('more data') // again
logger.write('and more') // again
Node будет продолжать добавлять новые данные в ваш файл каждый раз, когда вы вызовете .write
, до тех пор, пока ваше приложение не будет закрыто, или пока вы не закроете поток вручную с помощью .end
:
logger.end() // close string
Ответ 2
Просто используйте модуль fs
и что-то вроде этого:
fs.appendFile('server.log', 'string to append', function (err) {
if (err) return console.log(err);
console.log('Appended!');
});
Ответ 3
Если вы хотите внедрить систему журналов, я бы рекомендовал вам посмотреть Bunyan пакет.
Ответ 4
Шаг 1
Если у вас есть небольшой файл Прочитайте все данные файла в памяти
Шаг 2
Преобразование строки данных файла в массив
Шаг 3
Найдите массив, чтобы найти место, где вы хотите вставить текст
Шаг 4
После того, как вы разместите свой текст,
yourArray.splice(index,0,"new added test");
Шаг 5
преобразуйте массив в строку
yourArray.join("");
Шаг 6
напишите свой файл так
fs.createWriteStream(yourArray);
Это не рекомендуется, если ваш файл слишком большой