节点js:util.inspect将对象添加到数组

时间:2016-11-20 19:43:54

标签: node.js

我有一个问题,我很长时间都无法找到解决方案。

我正在使用NodeJS,我想将一个对象存储在一个数组中,我通过post从其他网站收到该数组。我用formidable解析这个对象,并希望用util.inspect显示它。此外,我想进一步使用该对象及其属性。

我有我的阵列:

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);

如何访问属性及其值?

我的一般想法是创建人员,将他们存储在一个数组中以便进一步使用它们(更新,删除),更改姓氏等。

请您告诉我哪个是最佳解决方案。

1 个答案:

答案 0 :(得分:0)

util.inspect(fields)返回fields对象的字符串表示形式(主要用于调试目的)。

据我所知,你想把fields对象本身推到数组上:

arr.fix.push(fields);

如果要记录该数组,则不应使用+,因为这会将数组转换为字符串,但将数组作为单独的参数传递:

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

或者将其记录为JSON:

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