Cómo crear un archivo txt en javascript

Matt West tiene razón al señalar que no puede crear un archivo de texto simple y guardarlo en el disco duro a menos que esté ejecutando Node, lo que puede hacer con el módulo del sistema de archivos (fs).

Pero eso no es del todo cierto. Lo que puede hacer es generar una cadena ASCII y luego abrirla en una nueva pestaña del navegador. El usuario puede hacer archivo> guardar como> filename.txt.

let newWindow = window.open (“acerca de: en blanco”, “”, “_blank”);

let textBlock = “Fue el mejor de los tiempos, fue el peor de los tiempos, fue la era de la sabiduría, fue la era de la necedad, fue la época de la creencia, fue la época de la incredulidad, fue la temporada de la Luz, era la estación de la Oscuridad, era la primavera de la esperanza, era el invierno de la desesperación, teníamos todo delante de nosotros, no teníamos nada delante, todos íbamos directamente al Cielo, todos íbamos directamente al de otra manera, en resumen, el período fue tan similar al período actual, que algunas de sus autoridades más ruidosas insistieron en que fuera recibido, para bien o para mal, solo en el grado de comparación superlativo “.

if (newWindow) {
newWindow.document.write (textBlock);
}

Una nota importante, si el usuario está bloqueando ventanas emergentes, la variable newWindow será nula. Es por eso que estoy envolviendo el conjunto de texto en un cheque nulo.

Primero, crea una función,

En segundo lugar, cree una matriz “new Blob ()”,

Tercero, cree “window.URL.createObjectURL ()”,

Cuarto, crea una etiqueta de anclaje invisible,

Quinto, establezca el evento de clic de anclaje en “descargar” y active una segunda función,

Sexto, haga clic () en el ancla dentro de la función,

Por último, cree una función para eliminar el objetivo del evento.

No necesita nodejs o un servidor, de hecho, esto se puede hacer con un marcador.

Editar, debe establecer un tipo mime con el ejemplo que he descrito.

var textFile = new Blob ([myTextFile], {

tipo: “texto / sin formato”

} // alternativamente – {type: “application / octet-stream”}

En el navegador no puedes. Sin embargo, Node.js puede darle acceso al sistema de archivos y puede crear un archivo de texto allí.

var fs = require (‘fs’);
export.textInput = función (req, res) {
var text = req.query.data;
console.log (texto);
fs.writeFile (‘./ public / files / text.txt’, text, function (err) {
si (err) {
return console.log (‘hay un error’);
}

console.log (‘el archivo fue guardado’);
respondWithFile ();
});

función respondWithFile () {
console.log (‘enviando archivo …’);
res.download (‘./ public / files / text.txt’);

};

};

Usando el siguiente código para crear un archivo de texto usando JavaScript y no funciona