welche version von node verwendest du?
du hast grundsätzlich 2 möglichkeiten.
1. die app.get() variante
2. middleware (app.use)
ich würde in dem fall warscheinlich middleware bevorzugen um z.b. nicht die cookies mit zu parsen etc. (sind ja static files)
middleware ist so ziemlich das niedrigste level auf dem du mit express arbeiten kannst. ich würde auch nicht dazu raten express aus dem fenster zu werfen. im gegenteil. grade jade, stylus usw. sind unter verwendung von express recht einfach zu handhaben und man kann express prima erweitern.
du kannst middleware auch prima in app.get einbauen:
JavaScript:1
2
3
4
5
6
7
8
9
10
11
12
13
14
| function loadUser(req, res, next) {
var user = users[req.params.id];
if (user) {
req.user = user;
next();
} else {
next(new Error('Failed to load user ' + req.params.id));
}
}
app.get('/user/:id', loadUser, function(req, res){
res.send('Viewing user ' + req.user.name);
}); |
express docs: route middleware
alle middleware funktionen die in app.use oder express.createServer angegeben sind werden -vor- app.get und app.post ausgeführt. du kannst res und req wie im beispiel erweitern und direkt in der nächsten middleware oder im app.get oder app.post verwenden.
unter das app.use(express.static(__dirname)); würde ich dann sowas schreiben wie:
app.use(srv.static); wobei srv.static dann einfach eine funktion ist, die überprüft ob der pfad zu den statischen dateien führt. falls nicht -> next();
falls doch -> auslieferung der datei -> ende