Crear archivo con javascript

Leos

Primero explico un poco la situación, yo estoy estudiando DAM, pero las practicas me han tocado en una empresa que solo toca web, entonces voy un poco perdidillo :(

Tengo que hacer un programa en node, ya lo tengo casi todo funcional pero me queda la última cosa que no se muy bien por donde encararla.

La cosa es que tengo que hacerlo en javascript/jquery.

En el html tengo unos inputs de los cuales tengo que coger el valor y con lo que obtengo tengo que crear un fichero .log y subirlo al servidor, he estado mirando bastante pero no encuentro nada útil para crear el fichero :(

He probado estos dos codigos:

$(document).ready(function(){
  $("#start").click(function(){
    var fs = require('fs');
    var title = $("#inputTitle").val();
    var date = $("#datepicker").val();
    var text = $("#text_area").val();
    var stream = fs.createWriteStream("title +".log");
    console.log(stream);
    stream.once('open', function(fd) {
    stream.write(title + "\n");
    stream.write(date + "\n");
    stream.write(text);
    stream.end();
  });
});
});
$(document).ready(function(){
  $("#start").click(function(){
function WriteFile()
{
   var fso  = new ActiveXObject("Scripting.FileSystemObject");
   var fh = fso.CreateTextFile("C:/Users/Nectar/Desktop.log", true);
   fh.WriteLine("Some text goes here...");
   fh.Close();
}
});
});

Ninguno de los dos me crea nada. He estado mirando pero todo lo que encuentro son ejemplos similares a estos.

Siento que no se si mi duda es una tonteria o que pero es algo que se me ha cruzado y no me sale, agradecería un poco de ayuda jajajaja

Gracias!

babri

por qué no pillas los valores y te haces un endpoint en el servidor que los recoja y desde tu server en node haces el archivo? En node quien tiene acceso al servidor y mejor enviar datos que no archivos vía http.

1 respuesta
B
#1Leos:

fs.createWriteStream("title +".log");

Esa línea imposible que te funcione... debería ser (title + ".log")

1 respuesta
kNG17

Por lo que entiendo de tu post, estás intentando utilizar el API de node desde el browser.

Tienes que crear un formulario en el html y desde node crear un endpoint en donde recibir los datos. Luego desde node creas el log. Es muy fácil.

1 respuesta
Leos

#2 #4 El problema es que no se usar node, me dieron la base ya hecha en php todo y tengo que pasarlo todo a javascript, para hacer la app de escritorio me dijeron que solo usara el webToexe y funcionaría y es lo que hago cuando lo pruebo y va bien.

#2 Es que eso que me dices me suena a chino :(

#3 Sobra las primeras comillas es que tenia la ruta donde lo quería antes y la he borrado para ponerla aquí y se me han escapado.

#4 Es que no uso el server de node en ningún momento, me dijeron que lo probara todo en el mamp que es un server apache, entonces me encuentro perdidisimo.

2 respuestas
Mujiwara

#5 Quizá me equivoque pero, desde "javascript/jQuery" va a ser imposible crear un .log "físico" ya que los browsers son muy cerrados (quizá puedes utilizar la librería de FileSystem, pero no te va a otorgar permisos en las carpetas, si no en los temporales del browser)

¿En vez de crear un archivo .log y subirlo al servidor, por qué no mandas los datos a través de una petición POST (por ejemplo) y que sea el propio servidor el que trate dichos datos?

1 respuesta
Leos

#6 El problema creo yo, no estoy seguro, es que el servidor node js no lo controlo yo, entonces no puedo pasarle los datos y tratar allí los datos, aunque si no veo otra solución hablaré con mi jefe a ver si me deja tocar el server para hacerlo así.

Pero en principio me dijo que tenía que crearlo y enviarlo desde el programa.

1 respuesta
Foxandxss

Esto es simple: No existe "fs" en el navegador. No puedes crear ficheros en el navegador como dice #5.

Otra cosa es usar node y ejecutarlo con node, así sí.

1 1 respuesta
lebroN

#7 Si tu jefe te está diciendo que lo hagas sin poder ejecutarlo con node... tiene un problema... necesitas al menos poder tocar algo del servidor para crear archivos, ya que por temas de seguridad desde el propio navegador no te va a dejar crearlos.

Leos

#8 #9 #6 #4 #3 #2 Muchas gracias a todos, he hablado con mis compañeros y me han dicho que acabe pasando los datos a la bd, así que ya no tengo el problema de crear el archivo jajajaja

B1x1t0

#8 Menos mal que estas para aportar sabiduria a este lugar :3

Usuarios habituales