2015-02-11 25 views
6

Tôi đang cố gắng gửi kết quả lớn từ cơ sở dữ liệu Mongo đến người dùng ứng dụng Koa (sử dụng Mongoose).Viết phản hồi trực tuyến từ truy vấn trực tuyến ở Koa với Mongoose

tôi ban đầu đã có cái gì đó như:

var res = yield Model.find().limit(500).exec(); 
this.body = {data: res}; 

Tuy nhiên, kích thước của kết quả thiết lập được gửi đã gây ra các ứng dụng để thời gian ra, và như vậy tôi muốn dòng phản ứng vì nó xuất phát từ kho dữ liệu.

Với Mongoose bạn có thể tắt các kết quả của một truy vấn vào một dòng bằng cách làm một cái gì đó như:

var stream = Model.find().limit(300).stream(); 

Tuy nhiên, tôi không chắc chắn làm thế nào để viết dòng này vào phản ứng trong khi vẫn giữ định dạng cần thiết. Tôi muốn một cái gì đó như thế này xảy ra:

this.body.write("{data: "}); 
this.body.write(stream); 
this.body.write("}"); 

nhưng tôi biết không có body.write trong Koa và tôi chắc chắn rằng tôi cũng không sử dụng đúng cách. Ai đó có thể chỉ cho tôi đi đúng hướng?

Trả lời

4

koa-write có thể hữu ích.

nhưng bạn có thể không cần điều đó. Koa cho phép bạn làm:

this.body = stream; 

Trong trường hợp bạn có thể tạo luồng chuyển đổi từ luồng mongoose không chính xác là những gì bạn muốn xuất.

Các vấn đề liên quan