来自Mongo的数据使用Gulp数据
在使用Gulp数据时,如何从我的Mongo
数据库获取数据作为数据源的Gulp
pipe道?
吞噬任务 ( 简体 )
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))})); });
当我使用原型数据库时,我可以运行,
> db.heroes.findOne()
并得到这个结果:
{ "_id" : ObjectId("581f9a71a829f911264ecba4"), "title" : "This is the best product!" }
你可以改变行cb(undefined, db.collection('heroes').findOne());
喜欢下面的那个,
db.collection('heroes').findOne(function(err, item) { cb(undefined, item); });
或者如下所示,
db.collection('heroes').findOne(cb);
所以你简化的上面的Gulp任务变成了,
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))})); });