메모리 DB를 사용하여 응답을 스트리밍 할 수 있습니까?NodeJS - 메모리 DB를 사용하여 응답을 스트리밍 할 수 있습니까?
메모리 데이터베이스에 Loki JS를 사용하고 있습니다. 테이블의 전체 내용을 반환해야하는 특정 리소스가 있습니다 (페이지 매김 될 수 없음). 테이블은 약 300MB 인 500,000 개 항목까지 커질 수 있습니다. 다른 경우
, 나는 파일을 얻을하여 사용자에게 스트리밍 fs.createReadStream을 사용한이 큰 파일을 위해 좋은 일했다
fs.createReadStream('zips.json')
.on('data', function() {
res.write(...)
})
.on('end', function() {
res.end();
})
,하지만 어떻게 내가는 사용하여 상응하는 뭔가를 할 수 메모리 DB에?
const items = lokiDb.addCollection('items');
items.insert('a bunch of items ...');
// I would now like to stream items via res.write
res.write(items)
현재 res.write(items)
은 노드가 전체 응답을 한 번에 보내려고하므로 메모리 문제가 발생합니다.
죄송합니다, 바보 같은 예; 똑바로 생각하지 않았습니다 : 저장된 저장은 단순히 버퍼가됩니다. 다음과 같이 prototype에서 push()를 변경하면 적어도 문자열 기반 데이터의 경우 괜찮을 것입니다. this.push (this.resource.join ('') .slice (begin, end)); – mycena