2016-06-07 2 views
1

Ich habe ein Objekt-Array namens Benutzer. Das Objektformat in diesem Array wie folgt aussieht:Objekt Array zu JSON selektiv verschneiden

var userExample = {pub:{name:'John', id:'100'}, priv:{location:'NYC', phone:'000000'}}; 

Als erholsamen Service, Informationen aller Benutzer Kunden verlangen. Und offensichtlich möchte ich nur öffentliche Informationen an sie senden. Deshalb mag ich durch Tasten meiner Daten selektiv serialisiert

Hier ist mein Code-Schnipsel (priv Schlüssel wird ignoriert):

var users = []; 
function censor(key, value) { 
    if (key == priv) { 
    return undefined; 
    } 
    return value; 
} 

app.get('/listUsers', function(req, res){ 
    res.end(JSON.stringify(users, censor)); 
}); 

Wenn ich diesen Code ausführen, ist ein Fehler aufgetreten:

ReferenceError: priv is not defined

Ich bin ein Javascript Anfänger, bitte helfen.

Antwort

1

Ändern priv zu "priv".

Aber Ihr Ansatz ist gefährlich. Unter ähnlichen Bedingungen erstelle ich normalerweise ein neues Objekt, das exportiert werden soll, und ich kopiere explizit die Eigenschaften, die exportiert werden sollen. Auf diese Weise besteht kein Risiko eines Lecks bei zukünftigen Änderungen der Datenstruktur. Eine weiße Liste ist immer zukunftssicherer als eine schwarze Liste.

+0

Danke, Sie haben Recht. Und nochmals vielen Dank für deinen Rat, ich werde es versuchen. – Ray