最近開發(fā)一個(gè)web是用nodejs開發(fā)的,有個(gè)上傳文檔的功能 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 = {};//根據(jù)metadata列出存mongo里的filenamefileUpload.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) { });};//通過filename從mongo中將文檔下載到磁盤中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); });};新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注