2012-09-26 13 views
6

Wie würde ich dynamische Variablennamen in NodeJS erstellen? Einige Beispiele sagen, in der window Variable zu speichern, aber ich ging davon aus, dass das clientseitige Javascript ist. Korrigiere mich, wenn ich falsch liege.Javascript: Server-seitige dynamische Variablennamen

+0

Alle Variablen sind dynamisch, wollten Sie fragen, wie man Globals im Knoten erzeugt? – Mahn

+0

Sie meinen, wie deklarieren Sie eine Variable? var x = 'val'; oder x = 'val'; Bevor Sie mit Node oder etwas anderem beginnen, müssen Sie vielleicht noch ein paar grundlegende JavaScript-Kenntnisse lernen. – Geuis

Antwort

14

Im Allgemeinen würden Sie etwas tun:

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

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

In node.js gibt es den global Kontext, der dem window Kontext in Client-Seite js entspricht. Wenn Sie eine Variable außerhalb von closure/function/modul deklarieren, wie Sie dies in JavaScript tun würden, wird sie im globalen Kontext gespeichert, dh als eine Eigenschaft von global.

ich verstehe Ihre Frage, die Sie so etwas wie die folgenden wollen:

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

Diese in node.js werden würde:

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

Ich weiß, dass das ist, was er in der Frage andeutete, aber Dinge in den 'globalen' Namespace zu setzen, ist in' node' verpönt. Sie werden nicht viele Bibliotheken finden, die so etwas tun. – Bill

+0

@Bill korrekt, aber ich war unter dem Eindruck, OP war verwirrt über das Fehlen des Fensters Kontext in node.js und würde gerne ein Äquivalent wissen. – Mahn

+0

Vielleicht mit "runInThisContext" mit dem VM-Modul in Knoten wäre etwas bevorzugt? http://www.davidmclifton.com/2011/08/18/node-js-virtual-machine-vm-usage/ – jonathanKingston