nodejs利用gridfs存文档到mongo中

首先npm install下载需要的模块 

mongo中fs.files中有字段filesname,metadata,利用metadata作为文档的分类

var mongoose = require('mongoose');
var conn = mongoose.createConnection('mongodb://127.0.0.1:27017/NodeJS');
var fs = require('fs');
var Grid = require('gridfs-stream');
Grid.mongo = mongoose.mongo;

var gfs = Grid(conn.db);
var path = require('path');
var util = require('util');
var urlencode = require('urlencode');
var mongooseSchema = new mongoose.Schema({
    filename:
String,
    metadata:
String,
    aliases:
String
}, {collection: "fs.files", versionKey: ""});
var getFile = conn.model('getFile', mongooseSchema);
var fileUpload = {};

//根据metadata列出存mongo里的filename
fileUpload.findAllFiles = function (httpId, callback) {
    getFile.find({metadata: httpId}, {
"filename": '1'}, function (err, docs) {
       
if (err) {
            callback(err);
        }
else {
            callback(
null, docs);
        }
    })
};

//将文档存到mongo
fileUpload.loadToMongo = function (name,httpId,callback) {
   
var writestream = gfs.createWriteStream({
        filename: name,
        metadata:httpId
    });
    fs.createReadStream(files).pipe(writestream);
    writestream.on(
'close', function (file) {
    });
};

//通过filenamemongo中将文档下载到磁盘中
fileUpload.readFile = function (dir, name, callback) {
   
var fs_write_stream = fs.createWriteStream("documents/" + dir + "/" + name);
   
var readstream = gfs.createReadStream({
        filename: name
    });
    readstream.pipe(fs_write_stream);
    fs_write_stream.on(
'close', function () {
        callback(
null);
    });
};


原文:http://blog.csdn.net/u012437323/article/details/55253706

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值