web-dev-qa-db-fra.com

Node.js + Express sans utiliser Jade

Est-il possible d'utiliser express sans n'importe quel moteur de template?

42
prog keys

[~ # ~] 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'));
15
Robert Brisita

Oui,

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

devrait juste fonctionner

30
Marcel M.

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

MISE À JOUR

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

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:

http: // localhost: 1337/index.html

http: // localhost: 1337/otherpage.html

3
Rocco

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éé.

2
Emanuel Saringan

Tout est obsolète - la bonne réponse pour 3x, 4x est

La deuxième réponse ici: Rendre la vue HTML de base?

2
Dan