Foros del Web » Programando para Internet » Node.js »

fs nodejs

Estas en el tema de fs nodejs en el foro de Node.js en Foros del Web. Hola tengo un programa que necesita guardar muchos datos dentro de un archivo. Para esto voy a utilizar fs de nodejs pero los datos son ...
  #1 (permalink)  
Antiguo 13/09/2013, 07:40
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 10 meses
Puntos: 29
fs nodejs

Hola tengo un programa que necesita guardar muchos datos dentro de un archivo.
Para esto voy a utilizar fs de nodejs pero los datos son muy diversos como arrays multidimensionales , simples string o valores booleanos.

Tengo una idea pero no creo que es la mas apropiada ya que creo que se tarda mas.
La idea es crear una variable que contendra los datos escritos de tal forma que luego se pueden recuperar y asignar los valores mediante eval(); tampoco me parece lo mas seguro. Lo ago con fs.appendFile(); en partes, array , string booleanos...
Alguien sabe como hacer lo con bytes ??

Saludos
  #2 (permalink)  
Antiguo 13/09/2013, 08:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: fs nodejs

buenas...
no estoy muy seguro si entiendo la duda. entiendo que requieres guardar ciertos datos en un archivo, pero no tengo claro cuando dices hacerlo con bytes. ¿qué pretendes hacer? ¿guardar los datos en forma binaria? tengo duda si todos los datos se pueden pasar a binario con Buffer y luego escribirlo al archivo, aún no he probado eso. igual, si de una u otra forma se puede hacer con Buffer, pienso que sería un desastre ya que requieres un formato para poder identificar cada cosa. no dudo que sea posible, sino que debes inventarte un formato para darle orden y estructura a los datos. en todo caso, quizas te sirva JSON. pones todos los datos en un objeto y luego lo serializas con JSON.stringify y el resultado lo guardas en el archivo. luego, al leer el archivo pasas el string por JSON.parse para recrear los datos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 13/09/2013, 10:08
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 10 meses
Puntos: 29
Respuesta: fs nodejs

Cita:
Iniciado por zerokilled Ver Mensaje
buenas...
no estoy muy seguro si entiendo la duda. entiendo que requieres guardar ciertos datos en un archivo, pero no tengo claro cuando dices hacerlo con bytes. ¿qué pretendes hacer? ¿guardar los datos en forma binaria? tengo duda si todos los datos se pueden pasar a binario con Buffer y luego escribirlo al archivo, aún no he probado eso. igual, si de una u otra forma se puede hacer con Buffer, pienso que sería un desastre ya que requieres un formato para poder identificar cada cosa. no dudo que sea posible, sino que debes inventarte un formato para darle orden y estructura a los datos. en todo caso, quizas te sirva JSON. pones todos los datos en un objeto y luego lo serializas con JSON.stringify y el resultado lo guardas en el archivo. luego, al leer el archivo pasas el string por JSON.parse para recrear los datos.
Hola el problema es que no se usar json he leído sobre el pero nunca me he puesto a estudiar lo. Lo de inventar me un formato es lo que estoy haciendo y creo que me funcionaria bien aunque tengo algunos problemas que estoy solucionando.
Aqui tengo un ejemplo:

Código Javascript:
Ver original
  1. var points=datos[1]
  2.                     var s='var points=[];';
  3.                     for(i in points){
  4.                         s+='points['+i+']=[];';
  5.                         for(j in points[i]){
  6.                             if(points[i][j]!=undefined){
  7.                                 s+='points['+i+']['+j+']=[]';
  8.                                 for(m in points[i][j]){
  9.                                     var point=points[i][j][m];
  10.                                     if(m==0){
  11.                                         s+='points['+i+']['+j+'].push({shift:'+point.shift+',time:'+point.time+',type:"'+point.type+'"});';//LAST DRAW HERE!!!!!
  12.                                     }else{
  13.                                         s+='points['+i+']['+j+'].push({color:"'+point.color+'",grosor:'+point.grosor+',opacity:'+point.opacity+',type:"'+point.type+'",x:'+point.x+',y:'+point.y+'});';
  14.                                     }
  15.                                 }
  16.                             }
  17.                         }
  18.                     }

datos[3] es un array que contiene otros arrays y al final objetos. Esto lo hace bien. Y luego cuando lo leo pienso crear el array points mediante eval() .
El problema es que no creo que es muy seguro ya que si alguien consigue editar el archivo... ya que no se como comprobar si todos estos datos que me envia el usuario no se han manipulado previamente ya que con un debugger se haría fácilmente.

A si casi se me olvida lo de bytes me refiria binario pero yo también creo que no es posible ya que la longitud de los arrays es aleatoria.

Saludos
  #4 (permalink)  
Antiguo 13/09/2013, 11:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: fs nodejs

básicamente lo que estás haciendo es escribir un código javascript. ¿no crees que quizas te convenga una base de datos? si aún no puedes manejar una, JSON sería lo más conveniente ya que te evita recurrir a evals. JSON es bien fácil de utilizar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:50.