使用Multer上传节点js中的文件
我能够使用下面的节点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个参数,首先是path('/ upload')和第二个callback函数(req,res)。
但是在上面的代码中间件有三个参数,第二个是“multer({dest:'./uploadImages/'}).single('idUpload')”
我想知道在node / express JS中有多less个参数可以用于中间件function。
中间件是这种forms的
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(); }
如果我们想在postpath中使用上面的两个中间件,可以使用它们
router.post('/mypath', first, second, function(req, res){ res.send(req.count) // will show 2 on response }
就像上面的情况一样,我们可以使用更多的中间件。 现在通过router.post()
它接受path作为第一个参数作为path和任意数量的中间件。 至于上传的问题,确保你有uploadImages
目录,path是正确的,请求头有Content-Type:'multipat / form-data',文件字段名为idUpload