2013-06-28 15 views
18

Chcę usunąć zawartość prostego pliku tekstowego za pomocą node.js. Lub zastąp plik nowym/pustym.Node.js/Usuń zawartość w pliku

Jak mogę to osiągnąć w węźle?

+3

Czy spojrzałeś tutaj? http://nodejs.org/api/fs.html – Dan455

+3

odrzucone z powodu braku badań –

+1

Czy nie jest to domyślne zachowanie fs.writeFile, jeśli nie dostarczasz flag? Trudniej jest dołączyć do pliku ... – ChrisCM

Odpowiedz

40

Szukasz fs.truncate lub fs.writeFile

Każda z poniższych zadziała:

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

lub

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

Istnieją również synchronous versions z both functions, że nie należy używać.

+2

+1 za nie usuwanie pliku i pisanie do tego samego pliku! – ChrisCM

+0

Czy możesz wyjaśnić, dlaczego wersje synchroniczne są niepożądane? –

+1

Pewnie! Głównym powodem jest to, że węzeł jest pojedynczym wątkiem (w przeważającej części), więc jeśli wykonujesz kosztowne operacje synchroniczne, blokujesz wykonywanie dla całego procesu. – Andbdrew

0

to połączenie potrzebne do usunięcia pliku. Aby zastąpić go inną treścią, wystarczy zastąpić ją numerem fs.writeFile.

+2

Z dokumentacji węzła dla fs.writeFile: Asynchronicznie zapisuje dane do pliku, zastępując plik, jeśli już istnieje. Twój krok odłączenia jest niepotrzebny. – ChrisCM

+0

@ChrisCM Po prostu odpowiadam na obie części pytania. –

Powiązane problemy