J'ai un middleware express qui réagit sur le serveur comme tellement, placé à la fin, après toutes les autres routes: car aucun itinéraire n'est spécifié, ce middleware sera exécuté pour toutes les demandes . Je voudrais exclure tous les itinéraires Pour être plus précis Je cherche une regex qui rendrait ce middleware exécuté pour tous les chemins, à l'exception de tout chemin commençant par Merci! P> J'ai déjà regardé Ceci a> alors post mais je n'ai rien trouvé utile pour moi. p> et Ce message contient beaucoup de solution de contournement qui n'est pas non plus ce que je cherche. p> Ce message POST vous demande de Vérifiez conditionnellement l'URL à l'intérieur du middleware. p> p> / API CODE> de celui-ci. Le problème est même si je crée toutes les itinéraires API avant ce middleware, il est toujours possible que ce middleware soit exécuté sur
/ API / NONXISTENTENDPOINT CODE> Chemin. P>
/ API code>. P>
3 Réponses :
Voici comment je gère des itinéraires d'API non existants.
J'ai API code> dossier contenant tout mon itinéraire API, idéalement, chacun dans leur propre fichier JS et API / Index.js nécessite toutes ces itinéraires comme celui-ci
app.use('/api', require('./api'));
app.use(function(req, res) {
console.log('dosomething');
res.send('Hello something').end();
});
Essayez ceci:
app.use(/^\/(?!api).*/, function(req, res) { Router.run(routes, req.path, function(Handler) { var markup = React.renderToString(<Handler />); res.send(swig.renderFile('views/index.html', { html: markup })); }); });
Je suis sûr que je suis sûr que j'avais exactement le même cas d'utilisation que Sahat, voici la syntaxe que j'ai utilisée pour la configuration de deux itinéraires pour gérer Ceci suppose que toutes vos issues de l'API suivent un modèle de / API code> correspondant et manque dans express.js:
/ API / * CODE>. P> P>