Avant de me poser à propos de app.router
je pense que je devrais expliquer au moins ce que je pense qui se passe lorsque l'on travaille avec le middleware. Pour utiliser un middleware, la fonction à utiliser est - app.use()
. Lorsque le middleware est exécuté, il va appeler la prochaine middleware en utilisant next()
ou faites en sorte pas plus middleware appelée. Cela signifie que l'ordre dans lequel je place mes middleware appels est important parce que certains middleware dépend d'autres middleware, et certains middleware près de la fin, on peut même pas être appelé.
Aujourd'hui, je travaillais sur mon application, et a mon serveur en cours d'exécution en arrière-plan. Je voulais faire quelques modifications et actualiser ma page et voir les changements immédiatement. Plus précisément, j'ai été faire des changements à ma disposition. Je ne pouvais pas le faire fonctionner, j'ai donc cherché si pour la réponse et trouve cette question. Il dit à assurez-vous que express.static()
sous require('stylus')
. Mais quand j'étais à la recherche à l'OP du code, j'ai vu qu'il avait lui - app.router
appel à la fin de son middleware appels, et j'ai essayé de comprendre pourquoi.
Quand j'ai fait ma demande expresse (version 3.0.0rc4), j'ai utilisé la commande express app --sessions --css stylus
et dans mon app.js fichier le code d'installation avec mon app.router
ci-dessus à la fois l' express.static()
et require('stylus')
des appels. Il semble donc que, si elle vient déjà de configuration de cette façon, alors il doit rester de cette façon.
Après ré-organiser mon code afin que je puisse voir mon Stylet changements, il ressemble à ceci:
app.configure(function(){
//app.set() calls
//app.use() calls
//...
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));
app.use(express.static(__dirname + '/public', {maxAge: 31557600000}));
});
app.get('/', routes.index);
app.get('/test', function(req, res){
res.send('Test');
});
J'ai donc décidé que la première étape serait de savoir pourquoi il est important d'avoir encore app.router
dans mon code. J'ai donc commenté, commencé mon application et navigué /
. Il affiche ma page d'index de l'amende juste. Hmm, peut-être que cela a fonctionné parce que j'ai été l'exportation de la gamme à partir de mon fichier de routes (itinéraires.l'indice). Donc ensuite, j'ai navigué /test
et de Test affichés sur l'écran. Haha ok, je n'ai aucune idée de ce qu' app.router
. Si il est inclus dans mon code ou pas, mon routage est très bien. Donc, je suis définitivement en manque de quelque chose.
Voici Donc Ma Question:
Quelqu'un pourrait expliquer ce qu' app.router
, l'importance de celui-ci, et où je devais la placer dans ma middleware appels? Il serait bien aussi si j'ai eu une brève explication sur express.static()
. Aussi loin que je peux dire, express.static()
est un cache de mes informations, et si l'application ne peut pas trouver la page demandée, il va vérifier le cache pour voir si elle existe.