2016-11-20 5 views
0

Ich habe ein Problem, wo ich die Lösung für eine lange Zeit nicht herausfinden kann.Knoten js: util.inspect Objekt zu Array hinzufügen

Ich benutze NodeJS und ich möchte ein Objekt in einem Array speichern, die ich von einer anderen Website per Post erhalten. Ich parse dieses Objekt mit formidable und möchte es mit util.inspect anzeigen. Außerdem möchte ich mit diesem Objekt weiterhin und mit seinen Eigenschaften arbeiten.

Ich habe meine Array:

const arr = { 
    fix: [] 
}; 


function CreatePerson (req, res) { 

    var form = new formidable.IncomingForm(); 
    form.parse(req, (err, fields, files) => { 
      var firstname = util.inspect(fields.firstname); 
      var lastname = util.inspect(fields.lastname); 
arr.fix.push(util.inspect(fields)); 

//Works fine - shows me the two properties of my person with the values 
console.log("Person" + util.inspect(fields)); 

// Works fine - shows me the given firstname 
console.log("Firstname: " + util.inspect(fields.firstname)); 

//This shows me the whole person with all properties as above 

console.log("Firstname " + arr.fix[0]); 

// If I want to show juste one property it does not work - I get undefined 

console.log("Firstname " + arr.fix[0].firstname); 

Wie kann ich die Eigenschaften und ihre Werte zugreifen?

Die allgemeine Idee, die ich habe, ist Menschen zu schaffen, speichert sie in einem Array mit ihnen zu arbeiten weiter (update, delete), ändert Nachnamen usw.

Könnten Sie mir bitte sagen, welche die beste Lösung sei, dafür.

Antwort

0

util.inspect(fields) gibt eine Zeichenfolgendarstellung des Objekts fields zurück (und wird hauptsächlich für Debugzwecke verwendet).

Von dem, was ich sagen kann, möchten Sie das Objekt fieldsselbst auf das Array drücken:

arr.fix.push(fields); 

Wenn Sie das Array anmelden wollen, sollten Sie nicht + verwenden, wie das wird gegossen das Array auf eine Zeichenfolge, aber das Array als separates Argument übergeben:

console.log("Firstname", arr.fix[0]) 

oder als JSON lügt:

console.log("Firstname %j", arr.fix[0])