Ho una logica di visualizzazione nel mio file modello di giada. Come posso passare il modello in jade e ottenere html per ulteriore invio via email?Come compilare il file modello di giada per ottenere una stringa?
risposta
si può provare il seguente:
var jade = require('jade'),
fs = require('fs');
fs.readFile('template.jade', 'utf8', function (err, data) {
if (err) throw err;
console.log(data);
var fn = jade.compile(data);
var html = fn({name:'Oleg'});
console.log(html);
});
Dove template.jade
è il percorso del modello. Ed è simile a questa:
!!!
html
head
title= 'Hello world'
body
p Hello #{name}!
Quindi si passa il vostro modello come input della funzione fn(), e l'uscita di esso sarà l'html.
<!DOCTYPE html><html><head><title>Hello world</title></head><body><p>Hello Oleg!</p></body></html>
Inoltre si può prendere la stringa da rendere callback (esprimere esempio)
exports.test1 = function(req, res){
res.render('test1', { title: 'test1' }, function(err, body) {
console.log(body);
});
res.send('wooo');
};
test1.jade
div
= title
p hello world!
Le risposte tutto il lavoro per il caricamento del modello di giada e compilarlo a HTML usando i locali. Tuttavia, se invii email HTML devi essere consapevole che la maggior parte dei client elimina tutte le classi CSS. Usa Juice (o qualcosa di simile) per applicare tutte le classi CSS in linea.
L'apertura del modello con fs.readFile()
non è più necessaria. L'API Jade include il metodo compileFile()
che viene compilato direttamente da un file.
var jade = require("jade");
var locals = {name: "Linus"},
render = jade.compileFile('template.jade'),
html = render(locals);
L'API Jade include anche il metodo renderFile()
che restituisce direttamente una stringa HTML da un dato file, il che rende ancora più semplice.
var jade = require("jade");
var locals = {name: "Linus"},
html = jade.renderFile('template.jade', locals);
corretto. Ecco una domanda pertinente su come controllare gli errori: http://stackoverflow.com/questions/7283896/how-can-i-catch-a-rendering-error-missing-template-in-node-js-using- express-js/34709515 # 34709515 – Wtower
quale versione di giada è quella? my renderFile (v1.2.0) si aspetta 3 argomenti – akcasoy
@akcasoy Questi sono i documenti più attuali: http://jade-lang.com/api/. La descrizione 'renderFile()' è in fondo e mostra che sono richiesti 2 argomenti. – Nocturno
- 1. Modello di giada come preprocessore per html
- 2. Come compilare condizionale (usando Grunt) ha cambiato solo i file di giada con modello include
- 3. Compilare una stringa semplice
- 4. cercando di formattare una data sul modello di giada
- 5. Come compilare i modelli di giada nelle funzioni JavaScript per usarli sul lato client?
- 6. Modello di giada, come passare oggetti concreti alle pagine?
- 7. Come passare la variabile dal file modello di giada a un file di script?
- 8. Collegamento ad altri file di giada
- 9. Rendering del modello di giada con layout (senza espresso)
- 10. Compilare un TreeView con una directory di stringa
- 11. emacs keybinding per compilare il file C
- 12. Come ottenere Meteor.Call per restituire il valore per il modello?
- 13. Modello di motore di giada - Ogni offset di itterazione
- 14. Come compilare automaticamente il file Sitemap
- 15. Come copiare i file di giada compilati in una cartella di destinazione utilizzando grugnito
- 16. Manubrio passare una stringa o Handlebars AST per Manubrio compilare
- 17. Ottenere il numero di riga per modello abbinato
- 18. Utilizzare una variabile in una giada include
- 19. Come ottenere il corpo di una funzione come stringa?
- 20. Cosa significa `corpo! = Corpo` nel modello di giada?
- 21. Modello di giada con variabili (lato server nodejs)
- 22. Invia modulo di giada
- 23. Ottenere il modello d'onda di un file audio in Java
- 24. Come ottengo il nome file dello script di giada in esecuzione
- 25. Come ottenere il primo carattere di una stringa in SQL?
- 26. Ereditarietà layout in giada
- 27. Come ottenere il tag title in una stringa di html?
- 28. Come ottenere l'ultima lettera di una stringa
- 29. Rendering di un modello in una stringa?
- 30. Come ottenere una stringa di larghezza
e vi consiglio di https://github.com/andris9/Nodemailer di inviare messaggi di posta elettronica –
grazie, tutto funziona perfettamente –
È possibile utilizzare [app.render] (http://expressjs.com/api. html # app.render) per eseguire il rendering di un modello su una stringa, come indicato in [this] (http://stackoverflow.com/questions/15403791/in-express-js-app-render-vs-res-render-whats -the-difference # answer-15404507) risposta più recente. –