Sử dụng các nút và biểu thức, tôi muốn trả lại một hoặc nhiều đối tượng (mảng) bằng cách sử dụng JSON. Trong đoạn mã dưới đây, tôi xuất một đối tượng JSON tại một thời điểm. Nó hoạt động nhưng đây không phải là những gì tôi muốn. Phản hồi được tạo ra không phải là một phản ứng JSON hợp lệ vì tôi có nhiều đối tượng.Làm thế nào để trả về một phản ứng JSON phức tạp với Node.js?
Tôi biết rõ rằng tôi có thể chỉ cần thêm tất cả các đối tượng vào một mảng và trả về mảng cụ thể đó trong res.end. Tuy nhiên tôi sợ điều này có thể trở nên nặng nề để xử lý và bộ nhớ chuyên sâu.
Cách thích hợp để đạt được điều này với nodej là gì? Là query.each phương pháp đúng để gọi?
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();
}
});
});
làm thế nào để làm điều đó mà không thể hiện? – Piotrek
@ Ludwik11 'res.write (JSON.stringify (foo))'. Nếu 'foo' lớn, bạn có thể cần phải cắt nó lên (xâu chuỗi, sau đó viết đoạn văn tại một thời điểm). Có lẽ cũng muốn lấy tiêu đề của bạn '" Content-Type ":" application/json "' hoặc tương tự như thích hợp. – OJFord