#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()
функции по умолчанию