javascript - 如何使用node.js上传文件并将其存储在mongodb中?

标签 javascript node.js mongodb express multer

我想从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(字符串,编码,偏移量,长度)已被弃用。使用write(字符串[,偏移量[ , 长度]][, 编码]) 代替。multer"

最佳答案

您始终可以使用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");
     });
 });

关于javascript - 如何使用node.js上传文件并将其存储在mongodb中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428698/

相关文章:

javascript - IE9 溢出时缩小 DIV :auto scrollbar appearance

javascript - 悬停时打开和关闭模态窗口,失焦时关闭

Node.js 路由和异步函数

spring - 在生产服务器中部署时是否应该更改 mongo bean 的值?

javascript - mongo javascript --eval 失败

JavaScript 翻译日期格式

javascript - 欧芹图像尺寸验证

javascript - process.env.PORT 打印奇怪的字符串

node.js - A 服务器的套接字连接问题(ExpressJS + Nodejs + Nginx + SSL)

node.js - Mongoose 可以为我提供某个领域的所有不同值(value)吗?