试图迭代节点js中的对象列表

时间:2017-12-05 11:07:54

标签: json node.js postman

我想通过邮差工具发送对象列表,并在我的服务器端代码上接收它, 这是我通过postman工具发送并通过post方法接收它的json代码

{
    "user1" : {
        "name" : "grijan",
        "prof" : "student"
    },
    "user2" : {
        "name" : "vijay",
        "prof" : "teacher"
    }
}

我的服务器端代码

var express = require('express');
var app = express();


app.use(express.urlencoded({ extended: false }));
app.use(express.json());

app.post('/saveUser',function(req,res){
    var  obj= req.body;
    console.log(obj);
    //code for iteration ????
})

var server = app.listen(8008,function(){});

我需要遍历对象和对象中的字段! 仅供参考我是节点新手,这是我的第二天:)

2 个答案:

答案 0 :(得分:1)

您不是发送列表,而是发送对象。如果你想发送一个列表,你应该发送这样的东西:

[
    {
        "name" : "grijan",
        "prof" : "student"
    },
    {
        "name" : "vijay",
        "prof" : "teacher"
    }
]

他们在节点方面:

var express = require('express');
var app = express();

app.use(express.urlencoded({ extended: false }));
app.use(express.json());

var methodToSaveInDB = function(name, prof) {
    // save it here into DB
}

app.post('/saveUser',function(req,res){
    var usersList = req.body;
    for(var user of usersList) {
        methodToSaveInDB(user.name, user.prof);
    }
})

var server = app.listen(8008,function(){});

如果你需要像对象一样发送它而不是列表,你可以遍历对象属性:

for (var property in obj) {
    if (obj.hasOwnProperty(property)) {
        console.log(obj[property].name);
        console.log(obj[property].prof);
    }
}

答案 1 :(得分:0)

任何正在寻找最新的内置解决方案的人。我们可以使用 ES7 中引入的 Object.entries() 方法

const obj = { a: 5, b: 7, c: 9 };

for (const [key, value] of Object.entries(obj)) {
  
  //you can do your operations here
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"

}

您可以在此处找到 Object.entries 的其他功能和示例enter link description here