使用Multer上传节点js中的文件

时间:2016-03-10 09:47:03

标签: node.js express

我可以在节点JS中使用下面的图片上传图片。

var express = require('express');
var router = express.Router();
var multer = require('multer');
var done = false;

router.get( '/upload', function(req , res) {
res.render('upload');
});


router.post( '/upload' , multer({ dest:   './uploadImages/'}).single('idUpload') ,  function(req , res) {

//-- logic for uploading file comes here
res.send('done');

});

module.exports = router;

根据我的理解,中间件可以有2个参数,首先是路径('/ upload') 和第二次回叫(功能(req,res)。

但在上面的代码中,中间件有三个参数,第二个是“multer({dest:'。/ uploads /'}}。single('idUpload')”

我想知道中间件功能允许多少个参数 在node / express JS。

1 个答案:

答案 0 :(得分:2)

中间件的格式为

var first = function(req, res, next){
      req.count = 1; //do something in this case attach count item to req object
      next(); // call next middleware 
     } 

var second = function(req, res, next){
      req.count += 1;
      next(); 
     } 

如果我们想在后期路线中使用上述两个中间件,您可以将它们用作

router.post('/mypath', first, second, function(req, res){
  res.send(req.count) // will show 2 on response
 }

如上所述我们可以使用更多的中间件。 现在来到router.post()它接受路径作为路径和任意数量的中间件的第一个参数。 至于上传问题,请确保您有uploadImages目录且其路径正确且请求标头包含内容类型:' multipat / form-data'文件字段名称为idUpload