Est-il possible d'utiliser l'express sans un moteur de modèles ?
Réponses
Trop de publicités?UPDATED
Certains pourraient craindre que sendFile ne fournit qu'une mise en cache côté client. Il existe plusieurs façons d'avoir une mise en cache côté serveur et, pour rester dans la ligne de la question de l'OP, on peut aussi renvoyer juste du texte avec envoyer :
res.send(cache.get(key));
Vous trouverez ci-dessous la réponse originale d'il y a plus de trois ans :
Pour tous ceux qui cherchent une réponse alternative à PavingWays, on peut également faire :
app.get('/', function(req, res) {
res.sendFile('path/to/index.html');
});
Sans avoir besoin d'écrire :
app.use(express['static'](__dirname + '/public'));
Pour tous ceux qui ont besoin d'utiliser immédiatement le HTML normal sans jade dans un nouveau projet express, vous pouvez le faire.
Ajouter un index.html
dans le dossier des vues.
Sur app.js
changement
app.get('/', routes.index);
à
app.get('/', function(req, res) {
res.sendfile("views/index.html");
});
UPDATE
Utilisez ceci à la place. Voir la section des commentaires ci-dessous pour une explication.
app.get('/', function(req, res) {
res.sendFile(__dirname + "/views/index.html");
});
Vous pouvez servir des fichiers statiques automatiquement avec Express comme ceci :
// define static files somewhere on top
app.use(express['static'](__dirname + '/your_subdir_with_html_files'));
En fait, cela devrait être express.static(...) mais pour passer JSLint la version ci-dessus fonctionne aussi ;)
Ensuite, vous démarrez le serveur et écoutez, par exemple, sur le port 1337 :
// app listens on this port
app.listen(1337);
Express sert maintenant les fichiers statiques dans /votre_sous-dossier_avec_html_files automatiquement comme ceci :