nodejs利用gridfs存文档到mongo中
2017-02-16 11:38
330 查看
最近开发一个web是用nodejs开发的,有个上传文档的功能
mongo链接端
首先npm install下载需要的模块
mongo中fs.files中有字段filesname,metadata,利用metadata作为文档的分类
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) { }); }; //通过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); }); };
相关文章推荐
- 利用 Gitbook 生成文档中心站点
- 利用JAXP开发包进行DOM方式解析XML文档
- Mongodb嵌套文档的改动-利用数组改动器更新数据
- 利用Word 2007书签 轻松编辑长文档
- 利用代码读取XML文档
- Java中利用iText生成pfd文档
- 利用JExcelApi来动态生成excel文档
- 巧妙利用DZ自有功能实现豆丁网在线文档功能
- Java利用Swagger2自动生成对外接口的文档
- 利用.NET 类编写 XML 文档
- 利用Java 创建和读取Excel文档
- 利用VC++与MSXML解析XML文档
- pdf文档的生成利用itextpdf jar包 二维码生成利用goole zing包 jar包可以在网上收
- 利用nodeJs来安装less以及编译less文件为css文件
- 利用mongod启动mongo
- VS2013/MFC编程入门之一(利用MFC向导生成单文档应用程序框架)
- Javascript利用VBA编辑Word文档
- electron利用nodejs+移动端技术跨平台桌面应用开发框架——记录下,类似node webkit!
- 利用Javadoc工具生成api文档
- [置顶] java后台利用模板生成Word文档提供前台下载