【问题标题】:how to upload the file and store it in mongodb using node.js?如何使用node.js上传文件并将其存储在mongodb中?
【发布时间】:2016-04-05 14:05:28
【问题描述】:

我想从 html 页面上传文件并使用 node.js 并将其存储在 mongodb 数据库中,并使用multer npm 包作为客户端和服务器之间的中间件

下面是我的 app.js 文件:

var express = require('express')
, multer = require('multer');

var app = express();
var multer  =   require('multer');

var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads');
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '-' + Date.now());
  }
});
var upload = multer({ storage : storage}).single('userPhoto');

app.post('/api/photo',function(req,res){
upload(req,res,function(err) {
    if(err) {
        return res.end("Error uploading file.");
    }
    res.end("File is uploaded");
});
});

而HTML格式是:

<form id="uploadForm" enctype="multipart/form-data" action="/api/photo"    method="post">
  <div class="azureD" style="display:none;">
    <div class="pull-left">
      <label class="labelTemp">Subscription ID</label>
      <div class="clickRole addStoTabWid">
      <input type="text" id="" placeholder="" style="border:none;width:100%;">  
    </div>
  </div>
  <div class="pull-left">
    <label class="labelTemp">Upload .pem file</label>
    <div class="clickRole addStoTabWid">
      <input type="file" name="userPhoto" id="" placeholder=""  style="border:none;width:100%;">
    </div>
  </div>
  <div class="modal-footer">
    </br><!--<a class="cancelPoup">Cancel</a>&nbsp;
    <button class="redButton">Create</button>-->
    <input type="submit" value="Upload Image" name="submit">
  </div>
</form>

我想将用户选择的文件上传到 mongodb 或本地磁盘,请帮我解决这个问题?

它是作为文件上传的结果,但它没有上传到文件夹中,并且在 node.js 控制台中我得到“.write(string, encoding, offset, length) 已被弃用。使用 write(string[, offset[ , 长度]][, 编码]) 代替。multer"

【问题讨论】:

    标签: javascript node.js mongodb express multer


    【解决方案1】:

    您可以随时使用mongoose 来保存文件信息。为schema 准备schema 调用并执行此操作

     //call for the mongoose schema
     //example :var emp = require('../models/employees.js');
     app.post('/api/photo', function(req, res) {
         upload(req, res, function(err) {
             if (err) {
                 return res.end("Error uploading file.");
             }
             var upl = new emp({
                 picture: req.file.originalname
             }); //creating object the mongoose schema
             upl.save(function(err, docs) {
                 if (err) {
                     console.log(err);
                 }
                 res.json(docs);
             });
             res.end("File is uploaded");
         });
     });
    

    【讨论】: