护照身份验证不适用于节点中的 multer

passport authentication doesn't work with multer in node

我正在尝试使用 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) => {...})

router.route() 只接受第一个路径参数,所以第二个参数(passport.authenticate()) 被忽略了。 你可以验证。

router.route("/", function(req,res,next){console.log('in 2nd param');next()})
.post()

我想你可以像下面这样使用 multer。

router.post("/",
            passport.authenticate("jwt", { session: false }),
            upload.single("image"),
            (req, res) => {...})

在您的 post 路由中使用 multer 这样您就可以验证您的路由器

router.post(‘/‘, passport , (req, res) =>{

})