Tag: mongoose gridfs

用Mongoose的GridFS put()死于写关注代码?

我有下面的代码(修剪,假设所有closures的东西都在那里),它们在GridFS内部深处: var Grid = require('mongodb').Grid; var mongoose = require('mongoose'); var db = mongoose.connect('mongodb://localhost:27017/ksnap'); router.route('/').post(function(req, res) { var post = new Post(); var busboy = new Busboy({ headers: req.headers }); req.pipe(busboy); busboy.on('file', function(fieldname, file, filename, encoding, mimetype) { console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', […]

MongoDB – 在父文档中填充GridFS文件元数据

我正在使用NodeJS Express,MongoDB,Mongoose和GridFS上传和检索文件。 我想通过ID引用其他文档中的文件,并在查询其他文档时填充文件元数据。 例如:如果我有一个像这样的文件的集合“用户”… { _id: ObjectId("554dfeb59e78d9081af2404f"), name: "John Doe", image: ObjectId("55b61ae329c44b483665bafc") } 我想这样做… User.findById(req.params.id) .populate('image') .exec(function(err, user) {…}) …应该让我访问文件元数据 – 例如文件名… user.image.filename 有任何想法吗?

如何在单个http请求中检索gridF中的所有图像

我是新的mean.js(angular.js + node.js)和使用GridFs来存储图像。 为了检索图像,现在我发送每个图像的http请求。 我担心这是否会影响网站的速度。 所以我想从gridFs一起检索所有的图像。 那可能吗? 有谁能够帮助我? 下面提供的是我的客户端代码。 $http.get('/uploads?filename=' + imagename).success(function(response) { $scope.img.push({imageph: response, image: item.image, url: item.url}); }).error(function (err) { console.log('Error uploading file: ' + err); }); 我的服务器端代码是: var qo = url.parse(req.url, true).query; var filename = qo.filename; if (filename !== 'undefined') { var rstream = gfs.createReadStream(filename); var bufs = []; rstream.on('data', function (chunk) […]

mongodose和nodejs的连接超时错误

我非常需要一些帮助。我正尝试使用mongoose和nodeJS将大文件(8 GB)上传到网格。 但由于文件非常大,上传需要一些时间。 过了一会儿,我得到以下错误: home/user/FileUpload/node_modules/mongodb/lib/utils.js:98 process.nextTick(function() { throw err; }); ^ MongoError: connection 0 to 127.0.0.1:27017 timed out at Function.MongoError.create (/home/user/FileUpload/node_modules/mongodb-core/lib/error.js:29:11) at Socket.<anonymous> (/home/user/FileUpload/node_modules/mongodb-core/lib/connection/connection.js:186:20) at Object.onceWrapper (events.js:314:30) at emitNone (events.js:105:13) at Socket.emit (events.js:207:7) at Socket._onTimeout (net.js:402:8) at ontimeout (timers.js:488:11) at tryOnTimeout (timers.js:323:5) at Timer.listOnTimeout (timers.js:283:5) 我试图通过增加connectTimeoutMS来解决这个问题,但是错误仍然存​​在。 我正在使用MongoDB 3.4.5 mongoose 4.8.4 nodejs 8.1.4和npm 5.0.3。 以下是app.js: var […]

使用gridfs和mongoose在mongodb中存储文件

我有以下代码 gridfs.js有以下写入文件字节的代码 exports.putFile = function(path, name, options, fn) { var db; db = mongoose.connection.db; options = parse(options); options.metadata.filename = name; return new GridStore(db, name, "w", options).open(function(err, file) { if (err) { return fn(err); } return file.writeFile(path, fn); }); }; mongoose模式定义如下。 mongoose模式有一个文件名和文件本身。 var fs = require('fs'); var mongoose = require('mongoose'); var db = mongoose.connection; var gridfs […]

用node.js,mongoose,gridfs-stream读取文件

我正在使用mongoose和gridfs-stream来存储和读取mongodb中的文件。 我在这里的例子: https : //github.com/aheckmann/gridfs-stream 写入文件到数据库工作正常,但我面临读取文件的问题。 什么mongodb看起来(显示集合) fs.chunks fs.files 文件索引的外观(db.fs.files.find()) { "_id" : ObjectId("5140392659851df70b000001"), "filename" : "cover", "contentType" : "binary/octet-stream", "length" : 85734, "chunkSize" : 262144, "uploadDate" : ISODate("2013-03-13T08:30:30.299Z"), "aliases" : null, "metadata" : null, "md5" : "4476b26067daa0677978ba501308a35d" } 然后我使用这个代码来获取名为“封面”的文件 … var gfs = Grid(mongoose.connection.db, mongoose.mongo) var readstream = gfs.createReadStream('cover') 发生错误: Error: cover does not […]

查询MongoDB GridFS?

我有一个存储上传文件到GridFS系统的博客系统。 问题是,我不明白如何查询它! 我正在使用Mongoose和NodeJS,它还不支持GridFS,因此我正在使用实际的MongoDB模块进行GridFS操作。 没有SEEM是一种查询文件元数据的方式,就像您在常规集合中查看文档一样。 将元数据存储在指向GridFS objectId的文档中是明智的吗? 轻松就能查询? 任何帮助将非常感激,即时通讯卡住:/