nodejs와 express를 사용하여 JSON을 사용하여 하나 이상의 객체 (배열)를 반환하고 싶습니다. 아래의 코드에서 한 번에 하나의 JSON 객체를 출력합니다. 그것은 작동하지만 이것은 내가 원하는 것만은 아닙니다. 많은 객체가 있기 때문에 생성 된 응답은 유효한 JSON 응답이 아닙니다.Node.js를 사용하여 복잡한 JSON 응답을 반환하는 방법은 무엇입니까?
나는 모든 객체를 배열에 추가하고 해당 배열을 res.end에 반환 할 수 있다는 것을 잘 알고 있습니다. 그러나 이것은 처리 및 메모리 집약적으로 무거워 질 수 있습니다.
nodej와 함께 이것을 달성하는 적절한 방법은 무엇입니까? query.each를 호출하는 올바른 방법입니까?
app.get('/users/:email/messages/unread', function(req, res, next) {
var query = MessageInfo
.find({ $and: [ { 'email': req.params.email }, { 'hasBeenRead': false } ] });
res.writeHead(200, { 'Content-Type': 'application/json' });
query.each(function(err, msg) {
if (msg) {
res.write(JSON.stringify({ msgId: msg.fileName }));
} else {
res.end();
}
});
});
표현하지 않고하는 방법? – Piotrek
@ Ludwik11'res.write (JSON.stringify (foo))'. 'foo'가 크면 문자열을 잘라서 (한 번에 덩어리를 작성해야 할 수도 있습니다) 필요할 수 있습니다. 아마도 또한 당신의 헤더''Content-Type ': "application/json"을 적절하게 표현하고 싶을 것이다. – OJFord