Самый простой способ записи в файлы в Node.js заключается в использовании API fs.WriteFile() .
Пример:
const fs = require('fs')
const content = 'Some content!'
fs.writeFile('/Users/flavio/test.txt', content, (err) => {
if (err) {
console.error(err)
return
}
//file written successfully
})В качестве альтернативы вы можете использовать синхронную версию fs.writeFileSync() :
const fs = require('fs')
const content = 'Some content!'
try {
const data = fs.writeFileSync('/Users/flavio/test.txt', content)
//file written successfully
} catch (err) {
console.error(err)
}По умолчанию этот API заменит содержимое файла , если он уже существует.
Вы можете изменить значение по умолчанию, указав флаг:
fs.writeFile('/Users/flavio/test.txt', content, { flag: 'a+' }, (err) => {})Флаги, которые вы, скорее всего, будете использовать, следующие
r+открыть файл для чтения и записиw+открыть файл для чтения и записи, расположив поток в начале файла. Файл создается, если он не существуетaоткройте файл для записи, расположив поток в конце файла. Файл создается, если он не существуетa+откройте файл для чтения и записи, расположив поток в конце файла. Файл создается, если он не существует
(вы можете найти больше флагов по адресу https://nodejs.org/api/fs.html#fs_file_system_flags )
Добавление в файл
Удобным способом добавления содержимого в конец файла является fs.appendFile() (и его fs.appendFileSync() аналог):
const content = 'Some content!'
fs.appendFile('file.log', content, (err) => {
if (err) {
console.error(err)
return
}
//done!
})Использование потоков
Все эти методы записывают полное содержимое в файл, прежде чем возвращать элемент управления обратно в вашу программу (в асинхронной версии это означает выполнение обратного вызова)
В этом случае лучшим вариантом является запись содержимого файла с использованием потоков.
Оригинал: “https://flaviocopes.com/node-writing-files/”