我有兩個函式來驗證請求正文validation1和validation2. 現在我的任務是,在決議傳入的請求正文后,validation1如果用戶角色是premium user,我需要驗證資料,否則我將使用validation2.
我試影像下面這樣解決它,但無濟于事。出于某種原因,沒有呼叫驗證中間件。
const express = require('express');
const router = express.Router();
const { userController } = require('./controllers');
router.route('/check').post(
(req, res, next) => {
if (req.role === 'premium user') {
validation1(someInformation);
} else {
validation2(someInformation);
}
next();
},
userController.check
);
const validation1 = (someInformation) => (req, res, next) => {
// codes
return next();
}
const validation2 = (someInformation) => (req, res, next) => {
// codes
return next();
}
任何幫助,將不勝感激。提前致謝。
uj5u.com熱心網友回復:
您應該通過回呼函式next來驗證函式。
還要像下面的代碼一樣更改您的驗證功能:
const express = require('express');
const router = express.Router();
const { userController } = require('./controllers');
router.route('/check').post(
(req, res, next) => {
if (req.role === 'premium user') {
validation1(req, res, next);
} else {
validation2(req, Res, next);
}
},
userController.check
);
const validation1 = (req, res, next) => {
// codes
return next();
}
const validation2 = (req, res, next) => {
// codes
return next();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/328288.html
