Tag: gridfs

Multer数组只返回一个文件

我正在使用multer在数据库中存储多个文件。 这些文件正确地存储在我的数据库,但是,如果我打印req.files我只得到一个文件。 这是我的代码: var storage = GridfsStorage({ url: config.mongo.uri, filename(req, file, cb) { cb(null, file.originalname); }, metadata(req, file, cb) { cb(null, {owner: req.params.driver}) } }); var upload = multer({ storage: storage }).array('files[]'); return upload(req, res, function (err) { if(err) { handleError(err); } console.log(req.files); // –> Getting only one file, even thought it stores all of […]

如何使用GridStore存储具有多键ID的文档?

我正在使用GridStore,并且我想要存储具有多个键的Id的文档。 我试过这个: var gridStore = new GridStore(db, {uuid: uuid, format: fileName}, 'w'); // Open the file gridStore.open(function (err, gridStore) { // Write some data to the file gridStore.write(data, function (err, gridStore) { assert.equal(null, err); // Close (Flushes the data to MongoDB) gridStore.close(function (err, result) { assert.equal(null, err); // Verify that the file exists GridStore.exist(db, {uuid: […]

平均堆栈:如何绑定上传到mongoose模型?

我在我的MEAN应用程序(它的一个项目控制面板)中玩上传表单。 我使用这个教程来实现一个工作上传: http : //markdawson.tumblr.com/post/18359176420/asynchronous-file-uploading-using-express-and 有了这个我可以上传文件 – 他们出现在我的上传文件夹。 现在我想实现,上传链接到用户所做的项目。 例如:Jon Doe已经login,他上传了一张照片。 现在我想呈现他的个人资料页面。 我查询了我的项目模型Jon Doe – >现在我想要他上传的媒体文件。 那么,我怎么把我的媒体发布到Jon Doe的projectSchema ? 之后,在Angular中展示所有媒体的最佳方式是什么? – – – 编辑 – – – 我一直试着用扩展器,我几乎设法使GET和POST的上传工作。 问题是,我不能从数据库中获取任何数据。 我的控制台给了我一个GET /uploads/media/[object%20Object] 304 。 目标是:编写project_id ,将文件写入mediaSchema。 所以当我打开一个项目时,我会得到所有与本项目的project_id匹配的媒体。 我更新了我的代码: HTML表单 <form id="uploadForm" enctype="multipart/form-data" action="/uploads/" method="post"> <label for="project_id">Ihre Projekt ID</label> <input type="text" name="project_id" value="{{projects._id}}" readonly> <input type="file" name="userPhoto"/> […]

节点REST API图像呈现问题

我有一个问题,在网页上显示一个简单的图像。 我有一个API的节点后端和查看页面的节点Web服务器。 代码工作得很好,但我需要添加一个中间网关(将在未来处理身份validation),它打破了代码。 我使用express和gridfs来存储并从mongo文件中取回。 这是代码 HTML / Angular页面 <img id="image" ng-src="http:localhost:3000/api/files/images/{{data.image}}" alt="" /> 网关(节点) var request = require('request'); //settings – retrive the url of the api backend micro-service var url = require('./configApiGw').url_service_api_contents; //api to retrive a file stored in mongo using gridfs app.get('/api/files/images/:id', function(req, res, next){ var uri = url+'/api/files/images/:'+req.params.id; request({ uri: uri, method: "GET", […]

陷入二进制数据更改为base64(Gridfsstream)

我试图从我上传的图像更改一些二进制数据到base64,所以我可以使用它来显示图像。 但最小的是给我这个错误: TypeError: Cannot read property 'on' of undefined 我不明白,当我发布我也使用.on事件,它工作正常。 除此之外,我想知道我是否正确地更改了数据。 请考虑到我是相当新的节点:) 我如何保存上传的图像(POST) // Post to profile page router.post('/', function(req, res, next) { var busboy = new Busboy({ headers: req.headers }); busboy.on('file', function(fieldname, file, filename, encoding, mimetype) { var conn = mongoose.createConnection('192.168.99.100:32773'); conn.once('open', function () { var gfs = Grid(conn.db); var writestream = gfs.createWriteStream({ filename: […]

WiredTiger,GridFS和Mongodb上传文件和最大文件大小

有关WiredTiger存储和MongoDB的三个问题。 我需要在数据库中存储可能超过16MB大小的(二进制)文件,现在我在WiredTiger网站上读到最大文件大小为512MB,但在Mongodb 插入方法中,它表示所有文档的最大大小应该是16MB ,那么在使用WiredTiger时,我能够存储大于16MB的文件吗? 我需要使用一个完整的文件,而不是其中的一部分(如video的stream媒体部分),是否可以使用GridFS? 我怎样才能在数据库中插入和查找文件? 我无法find有关如何使用WiredTiger的指南… 我是否必须从蒙哥马利语或蒙古语中做到这一点? 有没有办法用node.js编程?

如何等待循环创buildstream保存之前完成?

我知道循环何时完成, app.post('/api/books', upload.array('images'), function(req, res) { let book = req.body.book; let arr = []; // GridFS get connection with DB var gfs = gridfsstream(conn.db); var writestream; for (i = 0; i < req.files.length; i++) { writestream = gfs.createWriteStream({ filename: req.files[i].originalname }); fs.createReadStream('uploads/' + req.files[i].filename).pipe(writestream); writestream.on("close", function(file) { console.log(file.filename + "stored successfully into mongodb using gridfs"); […]

限制下载次数

我真的很新使用mongoDB和node.js,即时通讯试图限制每个文件在我的服务器下载数量。 我使用gridfs存储在数据库上的文件,并生成一个链接后,可以下载文件,我需要限制每个文件的下载次数,但不知道如何做到这一点。

有没有一个nodejs模块或如何使用WebDAV访问GridFS文件的例子?

我有一个现有的node.js应用程序,其中用户有一个用GridFS存储的文件库。 每个用户都有自己的库。 我想使用WebDAV安装该库,以便用户可以从桌面pipe理他们的库。 我已经看到jsDAV用于访问文件系统,但是不清楚如何扩展它以便与虚拟文件系统一起使用。 我发现gitDav,但不清楚如何使用它。 这甚至有可能从头开始?

使用Node.JS将文件保存到MongoDB GridFS

你怎么把close()放在writeBuffercallback中? 这个问题涉及到: MongoDB GridFS与Node.JS一起保存文件的问题