Mam logikę widoku w moim szablonie jade. Jak mogę przekazać model jade i uzyskać html do dalszego wysyłania przez e-mail?Jak skompilować plik szablonu jade, aby uzyskać ciąg znaków?
Odpowiedz
Można spróbować wykonać następujące czynności:
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);
});
Gdzie template.jade
to ścieżka do szablonu. I to wyglądać tak:
!!!
html
head
title= 'Hello world'
body
p Hello #{name}!
Więc zdać modelu jako wejście funkcji fn(), a wyjście z niego będzie html.
<!DOCTYPE html><html><head><title>Hello world</title></head><body><p>Hello Oleg!</p></body></html>
Ponadto można złapać ciąg z renderowanie zwrotnego (przykład wyrazić)
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!
Odpowiedzi wszystkie prace do ładowania szablonu jade i kompilowanie go do HTML za pomocą locals. Jednak jeśli wysyłasz wiadomości HTML, musisz zdawać sobie sprawę, że większość klientów usuwa wszystkie klasy CSS. Użyj Juice (lub coś podobnego), aby zastosować wszystkie klasy CSS w linii.
Otwarcie szablonu za pomocą fs.readFile()
nie jest już konieczne. Jade API zawiera metodę compileFile()
, która kompiluje bezpośrednio z pliku.
var jade = require("jade");
var locals = {name: "Linus"},
render = jade.compileFile('template.jade'),
html = render(locals);
Jade API obejmuje również metodę renderFile()
które bezpośrednio zwraca ciąg HTML z danego pliku, dzięki czemu jeszcze prostsze.
var jade = require("jade");
var locals = {name: "Linus"},
html = jade.renderFile('template.jade', locals);
Prawidłowo. Oto istotne pytanie dotyczące sprawdzania błędów: http://stackoverflow.com/questions/7283896/how-can-i-catch-a-rendering-error-missing-template-in-node-js-using- express-js/34709515 # 34709515 – Wtower
jade jest to wersja? mój renderFile (v1.2.0) oczekuje 3 argumentów – akcasoy
@akcasoy Oto najnowsze dokumenty: http://jade-lang.com/api/. Opis 'renderFile()' jest na samym dole i pokazuje 2 argumenty są wymagane. – Nocturno
- 1. pugjs (jade) silnik szablonu ładującego plik css
- 2. małe z Jade szablonu
- 3. Jak wygenerować czysty plik JavaScript z Jade?
- 4. Jade: Jak dołączyć plik javascript
- 5. Jak uzyskać sformatowany ciąg znaków w OCaml?
- 6. Jak uzyskać ciąg znaków binarnych z ArrayBuffer?
- 7. Jak poprawnie utworzyć plik Makefile, aby skompilować i uruchomić?
- 8. Renderowanie szablonu jade z układem (bez ekspresowego)
- 9. Jak można skompilować parametry szablonu non-type?
- 10. Konwertuj ciąg znaków Base64 na plik obrazu?
- 11. Zapobieganie interpolacji Jade dla szablonu skryptu
- 12. Jak mogę uzyskać stronę HTML jako ciąg znaków przez PHP?
- 13. Jak przekazać zmienną z pliku szablonu jade do pliku skryptu?
- 14. Jak skompilować kompilator Visual Studio zignorować plik?
- 15. Importuj plik tekstowy jako pojedynczy ciąg znaków
- 16. Łączenie znaków, aby utworzyć ciąg znaków w języku Java
- 17. Jak uzyskać cały dokument HTML jako ciąg znaków?
- 18. Jak uzyskać ciąg znaków obszaru od wielokąta za pomocą ulotki.draw
- 19. Jak sortować alfabetycznie ciąg znaków?
- 20. Użyj zawartości pliku, aby zastąpić ciąg znaków przy użyciu SED
- 21. Jak sformatować ciąg znaków, aby wykluczyć początkowe zera?
- 22. Jak mogę spowodować, aby DataContractJsonSerializer serializuje obiekt jako ciąg znaków?
- 23. Jak skompilować plik C bez wizualnego studio
- 24. jak skompilować plik pomocy w Androidzie?
- 25. Jak skompilować plik C++ do WebAssembly?
- 26. Jak skompilować plik Makefile za pomocą MinGW?
- 27. Jak filtrować ciąg Java, aby uzyskać tylko znaki alfabetu?
- 28. Jak analizować ciąg znaków true i false w tablicy, aby uzyskać wartość boolowską
- 29. Jak uzyskać długość ciągu znaków
- 30. Pobierz plik SVG jako ciąg znaków z JavaScript
A ja polecam https://github.com/andris9/Nodemailer do wysyłania e-maili –
dzięki, wszystko działa idealnie –
Można użyć [app.render] (http://expressjs.com/api. html # app.render) do renderowania szablonu do napisu, jak wspomniano w [this] (http://stackoverflow.com/questions/15403791/in-express-js-app-render-vs-res-render-whats -the-difference # answer-15404507) nowsza odpowiedź. –