Est-il possible d'utiliser express sans n'importe quel moteur de template?
[~ # ~] mis à jour [~ # ~]
Certains pourraient craindre que sendFile ne fournisse que la mise en cache côté client. Il y a plusieurs façons d'avoir la mise en cache côté serveur et de rester en ligne avec la question de l'OP, on peut aussi renvoyer juste du texte avec envoyer :
res.send(cache.get(key));
Voici la réponse originale d'il y a 3 ans et plus:
Pour ceux qui recherchent une réponse alternative à PavingWays, on peut aussi faire:
app.get('/', function(req, res) {
res.sendFile('path/to/index.html');
});
Sans avoir besoin d'écrire:
app.use(express['static'](__dirname + '/public'));
Oui,
app.get('/', function(req, res){
res.render('index.html');
});
devrait juste fonctionner
Pour ceux qui ont besoin d'utiliser immédiatement du HTML standard sans jade dans un nouveau projet express, vous pouvez le faire.
Ajouter un index.html
dans le dossier des vues.
Dans app.js
changement
app.get('/', routes.index);
à
app.get('/', function(req, res) {
res.sendfile("views/index.html");
});
Utilisez-le à la place. Voir la section des commentaires ci-dessous pour des explications.
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 désormais automatiquement les fichiers statiques dans/your_subdir_with_html_files comme ceci:
Dans votre fichier principal:
app.get('/', function(req, res){
res.render('index');
});
Votre fichier index.jade ne doit contenir que:
include index.html
où index.html est le code HTML brut que vous avez créé.
Tout est obsolète - la bonne réponse pour 3x, 4x est
La deuxième réponse ici: Rendre la vue HTML de base?