我如何添加多个中间件到我的快速控制器不在路由器



这是我用来在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) => {...}
];

最新更新