29 votes

Node.js + Express sans utiliser Jade

Est-il possible d'utiliser l'express sans un moteur de modèles ?

25voto

Marcel M. Points 1242

Oui,

app.get('/', function(req, res){
  res.render('index.html');
});

devrait juste fonctionner

12voto

Robert Brisita Points 557

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'));

4voto

JGallardo Points 1423

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"); 
});

3voto

Rocco Points 65

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 :

http://localhost:1337/index.html

http://localhost:1337/otherpage.html

-1voto

Emanuel Saringan Points 1088

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 HTML brut que vous avez créé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X