È ansible scrivere su un file (su un disco) usando JavaScript?

Sono un programmatore novizio-intermedio che fa una pugnalata all’AJAX. Mentre leggevo su JavaScript ho trovato curioso che la maggior parte degli esempi che ho utilizzato usino PHP per un’operazione del genere. So che molti di voi potrebbero obiettare che “sto sbagliando” o “JavaScript è un linguaggio lato client” ecc., Ma la domanda è valida. . . puoi scrivere un file solo in JavaScript?

La prossima versione di chrome (v52) lo ha reso ansible con fetch api + service worker + stream, ora puoi abilitare i flussi con un flag …

puoi andare su StreamSaver.js per vedere alcuni esempi su come usarlo.

Puoi fare qualcosa del genere:

const writeStream = fs.createWriteStream('filename.txt') const encoder = new TextEncoder let data = 'a'.repeat(1024) let uint8array = encoder.encode(data + "\n\n") writeStream.write(uint8array) writeStream.close() 

Oppure vai avanti e guarda le demo: https://jimmywarting.github.io/StreamSaver.js/example.html

Sì, certo che puoi. Dipende solo dagli oggetti API che il tuo motore javascript ti mette a disposizione.

Tuttavia, le probabilità sono che il motore javascript a cui stai pensando non fornisca questa funzionalità. Sicuramente nessuno dei principali browser web lo consentirà.

È ansible scrivere cookie con Javascript, sui nuovi browser si dispone anche di un database SQLite per memorizzare i dati lato client. Non è ansible memorizzare i dati in una posizione arbitraria sul disco.

Puoi utilizzare qualcosa come Google Gears per produrre applicazioni JS in grado di archiviare dati in una cache locale o in un database. Non puoi leggere o scrivere aree arbitrarie del disco. (Questo è stato scritto nel 2009 – Google Gears è ora deprecato )

In questi giorni, dovresti esaminare le funzionalità di archiviazione locali fornite da HTML5

No. È ansible utilizzare JavaScript per creare una richiesta AJAX per uno script di elaborazione lato server, ma consentire a JS di scrivere direttamente sul disco – lato client o lato server – sarebbe un enorme, brutto, abbagliante, imperdonabile buco di sicurezza del browser .

La risposta breve è no; per impostazione predefinita non è ansible scrivere un file sul disco locale, utilizzando il semplice JavaScript in un browser. Avrai bisogno di un aiuto per farlo. Ad esempio, TiddlyWiki è un motore wiki che è solo un singolo file HTML statico, ma può scrivere se stesso su disco con l’aiuto di un’applet Java (Tiddly Saver).

È ansible in Windows Scripting Host.

No, Javascript non è autorizzato ad accedere al filesystem, è una limitazione di sicurezza nel browser. L’unico modo in cui puoi farlo davvero è con ActiveX, ma poi ti limiti a usare IE.

Modifica: COME il post di cui sopra, potrebbe essere ansible se il tuo motore lo ha permesso, tuttavia non conosco un motore del browser (che è quello per cui lo stai scrivendo) che ti permetterà di farlo.