Bei meinem website.com/v2/bridge/:locationId/process
Endpunkt sieht die eingehenden req.body
wie folgt aus:Express - Conditional Routing
{
choice: 'a',
data: [
{
...
},
...
]
}
ich eine bestimmte Route zugreifen möchten, je nachdem, was der Wert von req.body.choice
ist. Wenn req.body.choice === 'a'
dann möchte ich weitergehen zu website.com/v2/bridge/:locationId/process/choiceA
mit dem gleichen req
weitergegeben werden.
Ich weiß nicht, welche Middleware ich verwenden muss, um das zu erreichen. Ich weiß nicht, ob das überhaupt möglich ist.
Meine extrem vereinfacht Routen:
// website.com/v2/bridge
const proc = require('./process');
router.use('/:locationId/process', proc);
module.exports = router;
// website.com/v2/bridge/56/process
router.use(function (req, res, next) {
// ?????????????????????????
next();
});
const choiceA = require('./choice-a');
const choiceB = require('./choice-b');
router.use('/choice-a', choiceA);
router.use('/choice-b', choiceB);
module.exports = router;
// website.com/v2/bridge/56/process/choice-a
router.post('/', function (req, res) {
res.send('I got here.');
return;
});
module.exports = router;
Was Middleware-Funktion muss ich sind meine Anfrage bedingt Weg? Ich versuche, eine riesige Funktion mit if-Anweisungen zu vermeiden, die verschiedene Dinge gemäß dem Wert von req.body.choice
verarbeiten.
ich nicht ändern konnte 'req.path
jetzt versuchen ', aber ich konnte' req.url' neu zuweisen und das funktionierte perfekt für mich. – Jacob
Gute Arbeit, das hat mir sehr geholfen. –