这是我用来在Express中编写控制器和路由的格式
控制器
exports.postBlog = async (req, res, next) => {...}
路线
router.route("/post").post(onlyAdmin, postBlog);
*onlyAdmin是一个保护中间件
我想在控制器中添加下面的multer方法,就在async (req, res, next)之前,这样上传逻辑由控制器处理,而不是路由器
upload.single("image")
从控制器调用multer上传中间件:
const multer = require('multer');
const upload = multer().single('image');
exports.postBlog = async (req, res, next) => {
upload(req, res, function (err) {
//...
}
}
因为路由处理程序也接受数组,所以你可以这样做:
exports.postBlog = [
upload.single("image"),
async (req, res, next) => {...}
];