var mongoose = require('mongoose'); var Schema = mongoose.Schema; mongoose.connect('mongodb://127.0.0.1/test'); var conn = mongoose.connection; var fs = require('fs'); var Grid = require('gridfs-stream'); Grid.mongo = mongoose.mongo; conn.once('open', function () { console.log('open'); var gfs = Grid(conn.db); // 寫文件 var writestream = gfs.createWriteStream({ filename: 'mongo_file.txt' }); fs.createReadStream('./local.txt').pipe(writestream); writestream.on('close', function (file) { console.log(file.filename + ' Written To DB'); }); var fs_write_stream = fs.createWriteStream('./write.txt'); // 讀取文件 var readstream = gfs.createReadStream({ filename: 'mongo_file.txt' }); readstream.pipe(fs_write_stream); fs_write_stream.on('close', function () { console.log('file has been written fully!'); }); // 根據文件名稱 gfs.remove({filename: 'mongo_file.txt'}, function (err) { if (err) return handleError(err); console.log('success'); }); // 根據fs.files._id刪除 gfs.remove({_id : '548d91dce08d1a082a7e6d96'}, function (err) { if (err) return handleError(err); console.log('success'); }); // 判斷文件是否存在 var options = {filename : 'mongo_file.txt'}; // 使用_id也可以 gfs.exist(options, function (err, found) { if (err) return handleError(err); found ? console.log('File exists') : console.log('File does not exist'); }); // 獲取文件基礎信息 gfs.files.find({ filename: 'mongo_file.txt' }).toArray(function (err, files) { if (err) { throw (err); } console.log(files); }); });