Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 使用mongoose在mongodb中存储文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是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>

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

解决方法

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

根据您的工作,您现在需要@L_686_0@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',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

大佬总结

以上是大佬教程为你收集整理的node.js – 使用mongoose在mongodb中存储文件全部内容,希望文章能够帮你解决node.js – 使用mongoose在mongodb中存储文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。