отправка нескольких объектов в ответ с помощью expressjs

#json #node.js #express #response

#json #node.js #экспресс #ответ

Вопрос:

У меня есть простое промежуточное программное обеспечение в expressjs

 app.get("/" , function(req , resp , next){

/* object 1 with data */
var obj1 = [ 
             {"name":"linda","family":"kamelia"},
             {"name":"ama","family":"kandi"},
             {"name":"lucy","family":"lofa"}
           ];

 /* object 2 with data */
 var obj2 = [ 
             {"name":"kama","family":"kambril"},
             {"name":"soli","family":"sepani"},
             {"name":"sara","family":"fani"}
           ];

    resp.send("First: "   obj1   "<br> Secoud: "   obj2 );
}); 
  

он показывает мне этот результат на выходе:

 First: [object Object],[object Object],[object Object]
Secoud: [object Object],[object Object],[object Object]
  

как я могу распечатать реальные данные из ответа на выходе?

Ответ №1:

Это не сработает в этом формате, попробуйте это

 resp.send({First: obj1 ,Secoud:  obj2});
  

Теперь вы получите объект с двумя свойствами First and Second и получите к нему доступ с помощью obj.First and obj.Second

Комментарии:

1. В качестве альтернативы вы можете использовать двумерный массив и сделать resp.send([obj1, obj2])

Ответ №2:

Строковое преобразование объекта

 resp.send("First: "   JSON.stringify(obj1)   "<br> Secoud: "   JSON.stringify(obj2) );
  

Ответ №3:

См.,

Прежде всего, вместо использования res.send() use res.json() .

Затем улучшите его, отправив следующим образом:

res.json({"obj1":JSON.Stringify(obj1), "obj2":JSON.Stringify(obj2)});

еще вы можете попробовать

res.json({"obj1":obj1, "obj2":obj2});

и на стороне клиента вы можете получить его следующим образом :

var data = JSON.Stringify(result);
var obj1 = data[0].obj1 amp;amp; var obj2 = data[0].obj2

Ответ №4:

Вы можете отправлять их отдельно, например :

 res.write(obj1);
res.write(obj2);
res.end();
  

Примечание: res.send() функции вызывают end() функции по умолчанию