Data from Mongo to Gulp using Gulp Data

How can I get data from my Mongo database into a tube in Gulp as a data source when using Gulp data?

Gulp Task (Simplified)

  gulp.task('db-test', function() { return gulp.src('./examples/test3.html') .pipe(data(function(file, cb) { MongoClient.connect('mongodb://127.0.0.1:27017/prototype', function(err, db) { if(err) return cb(err); cb(undefined, db.collection('heroes').findOne()); // <--This doesn't work. }); })) //.pipe(data({"title":"this works"})) -> This does work .pipe(through.obj(function(file,enc,cb){console.log('file.data:'+JSON.stringify(file.data,null,2))})); }); 

When I use the prototype database, I can run,

 > db.heroes.findOne() 

And get this result:

 { "_id" : ObjectId("581f9a71a829f911264ecba4"), "title" : "This is the best product!" } 
+7
javascript mongodb gulp
source share
1 answer

You can change the line cb(undefined, db.collection('heroes').findOne()); as shown below

 db.collection('heroes').findOne(function(err, item) { cb(undefined, item); }); 

OR as shown below

 db.collection('heroes').findOne(cb); 

So your simplified Gulp task will be,

 gulp.task('db-test', function() { return gulp.src('./examples/test3.html') .pipe(data(function(file, cb) { MongoClient.connect('mongodb://127.0.0.1:27017/prototype', function(err, db) { if(err) return cb(err); db.collection('heroes').findOne(cb); }); })) //.pipe(data({"title":"this works"})) -> This does work .pipe(through.obj(function(file,enc,cb){console.log('file.data:'+JSON.stringify(file.data,null,2))})); }); 
+5
source share

All Articles