2012-09-26 13 views
6

¿Cómo crearía nombres dinámicos de variables en NodeJS? Algunos ejemplos dicen que almacenar en la variable window, pero asumí que es el Javascript del lado del cliente. Corrígeme si estoy equivocado.Javascript: nombres de variables dinámicas del servidor

+0

Todas las variables son dinámicas, ¿pretendes preguntar cómo crear globales en el nodo? – Mahn

+0

¿Quieres decir, cómo declaras una variable? var x = 'val'; o x = 'val'; Es posible que necesite aprender un javascript más básico antes de comenzar con Node o cualquier otra cosa. – Geuis

Respuesta

14

En general, usted podría hacer algo como:

var myVariables = {}; 
var variableName = 'foo'; 

myVariables[variableName] = 42; 
myVariables.foo // = 42 
4

En node.js existe el contexto global, que es el equivalente al contexto window en js del lado del cliente. Declarar una variable fuera de cualquier cierre/función/módulo como lo haría en Javascript simple hará que resida en el contexto global, es decir, como una propiedad de global.

que entiendo de su pregunta que usted quiere algo parecido a lo siguiente:

var something = 42; 
var varname = "something"; 
console.log(window[varname]); 

Esto se convertiría en Node.js:

var something = 42; 
var varname = "something"; 
console.log(global[varname]); 
+1

Sé que esto es lo que estaba insinuando en la pregunta, pero poner las cosas en el espacio de nombres 'global' está mal visto en' node'. No encontrarás muchas bibliotecas que hagan este tipo de cosas. – Bill

+0

@Bill correcto, pero tenía la impresión de que OP estaba confundido por la falta del contexto de ventana en node.js y me gustaría saber un equivalente. – Mahn

+0

Quizás usar "runInThisContext" con el módulo vm en el nodo sería ligeramente preferido? http://www.davidmclifton.com/2011/08/18/node-js-virtual-machine-vm-usage/ – jonathanKingston

Cuestiones relacionadas