criteria
)This method uses a node write stream to pipe model data as it is retrieved without first having to buffer all of the results to memory.
Description | Accepted Data Types | Required ? | |
---|---|---|---|
1 | Find Criteria | {} ,[{}] , string , int |
Yes |
2 | Custom Write/End Methods | {} |
No |
Description | Possible Data Types | |
---|---|---|
1 | Error | Error |
2 | Stream of Records | stream |
UsersController.js
module.exports = {
testStream: function(req, res){
if (req.param('startStream') && req.isSocket){
var getSocket = req.socket;
// Start the stream. Pipe it to sockets.
User.stream({name:'Walter'}).pipe(getSocket.emit);
} else {
res.view();
}
}
}
`
views/users/testSocket.ejs
<script type="text/javascript">
window.onload = function startListening(){
socket.on('gotUser',function(data){
console.log(data.name + ' number ' + data.id + ' has joined the party');
});
};
</script>
<div class="addButton" onClick="socket.get('/users/testStream/', {startStream:true})">Stream all the Users!</div>
This method is useful for piping data from VERY large models straight to res. You can also pipe it other places. See the node stream docs for more info. Only the mongo, mysql, and posgresql adapters support this method. This won't work with the disk adapter. Any string arguments passed must be the ID of the record.