ReadStream
- class ReadStream()¶
Arguments:
- autoclose (boolean) – automatically close file when the stream reaches the end.
- cursor (gridstore) – a cursor object that the stream wraps.
Returns: readstream
Returns a stream interface for the file.
Pauses this stream, then no farther events will be fired.
Examples
A simple example showing the use of the readstream pause function.
var Db = require('mongodb').Db, MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server, ReplSetServers = require('mongodb').ReplSetServers, ObjectID = require('mongodb').ObjectID, Binary = require('mongodb').Binary, GridStore = require('mongodb').GridStore, Grid = require('mongodb').Grid, Code = require('mongodb').Code, BSON = require('mongodb').pure().BSON, assert = require('assert'); var db = new Db('test', new Server('locahost', 27017)); // Establish connection to db db.open(function(err, db) { // File id var fileId = new ObjectID(); // Create a file var file = new GridStore(db, fileId, "w", {chunk_size:5}); file.open(function(err, file) { // Write some content and flush to disk file.write('Hello world', function(err, file) { file.close(function(err, result) { // Let's create a read file file = new GridStore(db, fileId, "r"); // Open the file file.open(function(err, file) { // Peform a find to get a cursor var stream = file.stream(); // For each data item stream.on("data", function(item) { // Check if stream is paused assert.equal(false, stream.paused); // Pause stream stream.pause(); // Restart the stream after 1 miliscecond setTimeout(function() { stream.resume(); }, 100); }); // For each data item stream.on("end", function(item) { stream.destroy(); }); // When the stream is done stream.on("close", function() { db.close(); }); }); }); }); }); });
Destroys the stream, then no farther events will be fired.
Examples
A simple example showing the use of the readstream destroy function.
var Db = require('mongodb').Db, MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server, ReplSetServers = require('mongodb').ReplSetServers, ObjectID = require('mongodb').ObjectID, Binary = require('mongodb').Binary, GridStore = require('mongodb').GridStore, Grid = require('mongodb').Grid, Code = require('mongodb').Code, BSON = require('mongodb').pure().BSON, assert = require('assert'); var db = new Db('test', new Server('locahost', 27017)); // Establish connection to db db.open(function(err, db) { // File id var fileId = new ObjectID(); // Create a file var file = new GridStore(db, fileId, "w"); file.open(function(err, file) { // Write some content and flush to disk file.write('Hello world', function(err, file) { file.close(function(err, result) { // Let's create a read file file = new GridStore(db, fileId, "r"); // Open the file file.open(function(err, file) { // Peform a find to get a cursor var stream = file.stream(); // For each data item stream.on("data", function(item) { // Destroy the stream stream.destroy(); }); // When the stream is done stream.on("close", function() { db.close(); }); }); }); }); }); });
Resumes this stream.
Examples
A simple example showing the use of the readstream resume function.
var Db = require('mongodb').Db, MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server, ReplSetServers = require('mongodb').ReplSetServers, ObjectID = require('mongodb').ObjectID, Binary = require('mongodb').Binary, GridStore = require('mongodb').GridStore, Grid = require('mongodb').Grid, Code = require('mongodb').Code, BSON = require('mongodb').pure().BSON, assert = require('assert'); var db = new Db('test', new Server('locahost', 27017)); // Establish connection to db db.open(function(err, db) { // File id var fileId = new ObjectID(); // Create a file var file = new GridStore(db, fileId, "w", {chunk_size:5}); file.open(function(err, file) { // Write some content and flush to disk var fileBody = 'Hello world'; file.write(fileBody, function(err, file) { file.close(function(err, result) { // Let's create a read file file = new GridStore(db, fileId, "r"); // Open the file file.open(function(err, file) { // Peform a find to get a cursor var stream = file.stream(true); // Pause the stream initially stream.pause(); // Save read content here var fileBuffer = ''; // For each data item stream.on("data", function(item) { // Check if stream is paused assert.equal(false, stream.paused); // Pause stream stream.pause(); fileBuffer += item.toString('utf8'); // Restart the stream after 1 miliscecond setTimeout(function() { stream.resume(); }, 100); }); // For each data item stream.on("end", function(item) { }); // When the stream is done stream.on("close", function() { // Have we received the same file back? assert.equal(fileBuffer, fileBody); db.close(); }); // Resume the stream stream.resume(); }); }); }); }); });