我正在尝试使用multer上传图像。但是,我要在用户上载图像之前对其进行身份验证。我的代码在下面,passport.authenticate不起作用。我无需登录即可上传。
const router = express.Router();
const upload = multer({ dest: 'uploads/' })
router.route("/", passport.authenticate("jwt", { session: false }))
.post(
upload.single("image"),
(req, res, next) => {.....})
但是,身份验证以这种方式工作,但是我不能使用multer。
router.post(
"/",
passport.authenticate("jwt", { session: false }),
(req, res) => {...})
答案 0 :(得分:1)
router.route()仅接受第一个路径参数,因此第二个参数(passport.authenticate())被静默忽略。 您可以验证。
router.route("/", function(req,res,next){console.log('in 2nd param');next()})
.post()
我认为您可以像下面那样使用混合器。
router.post("/",
passport.authenticate("jwt", { session: false }),
upload.single("image"),
(req, res) => {...})
答案 1 :(得分:0)
以这种方式在发布路线内使用multer,从而可以对路由器进行身份验证
router.post(‘/‘, passport , (req, res) =>{
})