node.js - 在node js中使用Multer上传文件

标签 node.js express

我可以使用下面的 Node 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') 和第二个回调(function(req,res)。

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

我想知道中间件函数允许有多少个参数 在 Node/express JS 中。

最佳答案

中间件的形式为

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(); 
     } 

如果我们想在 post 路由中使用以上两个中间件,您可以将它们用作

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

与上面的情况一样,我们可以使用更多的中间件。 现在进入 router.post() ,它接受路径作为第一个参数作为路径和任意数量的中间件。 至于上传问题,请确保您有 uploadImages 目录及其路径正确,并且请求 header 具有 Content-Type: 'multipat/form-data' 且文件字段名称为 idUpload

关于node.js - 在node js中使用Multer上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912852/

相关文章:

javascript - Expressjs Mongoose 查找嵌套嵌入文档未定义

mysql - 使用 sequelize.literal() 的替换

node.js - "Error: socket hang up" express

node.js - CloudFlare "SSL: Flexible"HTTPS 不适用于自定义端口

javascript - 无法解析从 Instagram API 返回的 user_media 对象

javascript - 无法使用 Express 和 Node Js 打开从服务器下载的 pdf 文件

node.js - 导出模型函数时出现问题(Express 和 Mongoose)

javascript - Clojurescript使用nodejs读取stdin

javascript - 通过nodejs从mongodb获取数据并express到html页面

javascript - 相当于没有 jQuery 的 $.load