Node.js / Удалить содержимое в файле

25

Я хочу удалить содержимое простого текстового файла с помощью node.js. Или замените файл на новый / пустой.

Как я могу достичь этого в узле?

    
задан user937284 28.06.2013 в 20:20
источник
  • Вы смотрели здесь? nodejs.org/api/fs.html –  Dan455 28.06.2013 в 20:24
  • сокращено из-за отсутствия исследований –  Peter Lyons 28.06.2013 в 20:25
  • Разве это не поведение по умолчанию fs.writeFile, если вы не даете флаги ??? На самом деле сложнее добавить приложение в файл ... –  ChrisCM 28.06.2013 в 20:30
  • @ectomorph: из документов о fs.writeFile: асинхронно записывает данные в файл, заменяя файл, если он уже существует. Кажется довольно прямолинейным для меня. Я скучаю по дням, когда вы можете использовать ссылки на LMGTFY ... nodejs.org/api/... –  ChrisCM 28.06.2013 в 20:35
  • @ectomorph много всего в модуле fs - это всего лишь обертки вокруг системных вызовов, поэтому у вас будет довольно хороший процент, если вы ищете дополнительную документацию на страницах руководства вашей системы. Хороший пример примера - man truncate. –  Andbdrew 28.06.2013 в 20:47
Показать остальные комментарии

2 ответа

50

Вы ищете fs.truncate или fs.writeFile

Будет выполнено одно из следующих действий:

var fs = require('fs')
fs.truncate('/path/to/file', 0, function(){console.log('done')})

или

var fs = require('fs')
fs.writeFile('/path/to/file', '', function(){console.log('done')})

Существуют также синхронные версии обе функции , которые вы не должны использовать.

    
ответ дан Andbdrew 28.06.2013 в 20:25
источник
  • +1 для того, чтобы не удалять файл и писать в тот же файл! –  ChrisCM 28.06.2013 в 20:27
  • Можете ли вы объяснить, почему синхронные версии нежелательны? –  Jan 29 '15 at 5:34 29.01.2015 в 06:34
  • Конечно! Основная причина заключается в том, что узел является однопоточным (по большей части), поэтому, если вы выполняете дорогостоящие синхронные операции, вы блокируете выполнение для всего процесса. –  Andbdrew 29.01.2015 в 23:28
  • не знаю, почему, но ни один из них, похоже, не обнуляет файл для меня. –  chovy 06.12.2015 в 03:57
1

fs.unlink - вызов, необходимый для удаления файла. Чтобы заменить его на другое содержимое, просто перепишите его на fs.writeFile .

    
ответ дан Peter Lyons 28.06.2013 в 20:25
источник
  • Из документации узла для fs.writeFile: асинхронно записывает данные в файл, заменяя файл, если он уже существует. Ваш шаг разблокировки не нужен. –  ChrisCM 28.06.2013 в 20:31
  • @ChrisCM Я просто отвечаю на обе части вопроса. –  Peter Lyons 28.06.2013 в 21:12