我可以使用下面的 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/