【问题标题】:Trying to iterate through list of objects in node js尝试遍历节点 js 中的对象列表
【发布时间】:2021-01-18 13:56:45
【问题描述】:

我想通过邮递员工具发送对象列表并在我的服务器端代码上接收它, 这是我通过 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(){});

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

【问题讨论】:

标签: json node.js postman


【解决方案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);
    }
}

【讨论】:

  • 大卫我的节点很差,这是为我的程序迭代对象的代码 for (var property in obj) { if (obj.hasOwnProperty(property)) { // do stuff } }
  • 你能告诉我如何以分别给我所有四个字段的方式进行迭代
  • 我正在尝试将所有这些字段放入数据库中,因此需要单独的值
  • @Grijan 我编辑了两种可能性的响应。
  • 我问的问题可能听起来很愚蠢,但我需要将这些对象传递给另一个函数并将这些值添加到包含名称和教授的数据库中,关于如何做到这一点的任何想法?,对不起,如果我是打扰你了!
【解决方案2】:

任何正在寻找最新的内置解决方案的人。我们可以使用 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"

}

您可以在此处enter link description here

找到 Object.entries 的其他功能和示例

【讨论】:

    猜你喜欢
    • 2015-03-17
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多