使用mongoose将文件存储在mongodb中

石ak屋

我是node和mongoDB的新手。我正在使用nodeJS,express和mongoDB开发应用程序。我想从文件输入字段中读取一个csv / xlsx文件,并使用mongoose将其存储在mongoDB中。我有困难。我在前端使用angularjs。谁能给我建议我应该经过什么程序?特定代码将有很大帮助。

我使用busboy模块将文件存储在特定的文件夹中。这是我的代码

在航线上:

router.post('/fileupload', function (req, res) {
    var fstream;
    req.pipe(req.busboy);
    console.log(req.pipe);
    console.log(req.busboy);
    req.busboy.on('file', function (fieldname, file, filename) {
        console.log("Uploading: " + filename);
        fstream = fs.createWriteStream('./files/' + filename);
        file.pipe(fstream);
        fstream.on('close', function () {
            res.redirect('back');
        });
    });
});

和我的前端:

<form method="post" action="/fileupload" enctype="multipart/form-data">
    <input type="file" id="file" name="file">
    <button type="submit">Submit</button>
</form>

到目前为止,没有错误。现在我只想将这些文件存储在数据库中。接下来我该怎么办?

SOJ

您可能需要了解在mongo中存储文件的基础。为什么文件存储在mongo中以及如何存储?

完成之后,您现在需要一个mongoose插件,该插件会将您上传的文件存储到mongo GridFS中。该GridFS的是在这里: - http://docs.mongodb.org/manual/core/gridfs/您可以使用任何兼容的驱动程序来访问网格-mongoose和mongoose插件gridfs-stream是一个示例-参见此处:https ://www.npmjs.org/package/gridfs-stream

我在下面使用过将文件保存到gridfs中。

var express = require('express');
var formidable = require('formidable');
var mongoose = require('mongoose');
var grid = require('gridfs-stream');
var fs = require('fs');
var util = require('util');
var app = express();

app.post('/fileupload', function (req, res) {
    var form = new formidable.IncomingForm();
    form.uploadDir = __dirname + "/data";
    form.keepExtensions = true;
    form.parse(req, function(err, fields, files) {
        if (!err) {
          console.log('File uploaded : ' + files.file.path);
          grid.mongo = mongoose.mongo;
          var conn = mongoose.createConnection('..mongo connection string..');
          conn.once('open', function () {
          var gfs = grid(conn.db);
          var writestream = gfs.createWriteStream({
              filename: files.file.name
          });
          fs.createReadStream(files.file.path).pipe(writestream);
       });
     }        
   });
   form.on('end', function() {        
       res.send('Completed ..... go and check fs.files & fs.chunks in  mongodb');
   });

});

app.get('/', function(request, response){
    response.send(
        '<form method="post" action="/fileupload" enctype="multipart/form-data">'
        + '<input type="file" id="file" name="file">'
        + '<input type="submit" value="submit">'
        + '</form>'
        );    
});

app.listen(40000, function() {
    console.log('Express is listening on port 40000');
});

上面是有关上传文件后应如何进行操作的指南,它不是生产就绪的概念证明。请注意,根据个人喜好,我将busboy替换为强大。

它有助于您继续前进吗?

SO1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Mongoose中使用Multer将文件存储到MongoDB中

使用Node.js将文件存储在mongodb中

使用nodeJS loopback 2.5将PDF文件存储在mongoDB中

使用Node.js / Express和Mongoose将图像存储在MongoDB中

使用gridFS在mongoDB中存储文件(图像)

如何使用 Nodejs 将 MongoDB 查询的结果存储在文本文件中?

将扫描的(pdf,tiff,jpeg)文件存储在MongoDB中。

将扫描的(pdf,tiff,jpeg)文件存储在MongoDB中。

使用Mongoose将元素添加到MongoDB中的数组

MongoDB-将文件存储在数据库中还是外部存储中?

将纯 JSON 存储在 HDFS 中以在 MongoDB 中使用

使用 mongoosastic 将数据存储在 ES 而不是 MongoDB 中

使用GridFS和Meteor将图像存储在Mongodb中

使用Meteor将Facebook头像存储在MongoDB中

使用Mongoose + Node.js在MongoDB中存储非结构化JavaScript对象

使用资源将数据存储在Angular中的json文件中

使用mongoose模式将文本文件(CSV格式)导入mongodb

如何使用Mongoose将json导入MongoDB

无法使用gob将数据正确存储在文件中

如何使用Java将BigDecimal存储在Excel文件中

使用Java将数据存储在JSON文件中

使用循环将数据存储在php的xml文件中

使用JavaScript将CSV文件存储到数组中

如何使用Mongoose将值推入MongoDB中嵌入式文档中的数组?

如何设置Mongoose模式以在MongoDB中存储对象数组?

如何将存储在json文件中的td类存储到html表中(使用Ajax)

如何使用sql中的路径存储将图像存储在文件夹中

无法在Node.js中使用mongoose将JSON插入mongoDB中

使用mongoose将Node.js连接到MongoDB中的分片副本集群的正确方法