Tôi có một khung nhìn logic trong tệp mẫu ngọc bích của tôi. Làm thế nào tôi có thể vượt qua mô hình để ngọc và nhận được html để gửi thêm qua email?Làm thế nào để biên dịch tập tin mẫu ngọc bích để có được chuỗi?
Trả lời
Bạn có thể thử như sau:
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);
});
đâu template.jade
là con đường cho mẫu của bạn. Và nó trông giống như sau:
!!!
html
head
title= 'Hello world'
body
p Hello #{name}!
Vì vậy, bạn chuyển mô hình của mình làm đầu vào của hàm fn() và đầu ra của nó sẽ là html.
<!DOCTYPE html><html><head><title>Hello world</title></head><body><p>Hello Oleg!</p></body></html>
Ngoài ra bạn có thể nắm bắt những chuỗi từ làm cho callback (thể hiện ví dụ)
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!
Những câu trả lời tất cả các công việc cho tải mẫu ngọc bích và biên dịch nó để HTML sử dụng người dân địa phương. Tuy nhiên nếu bạn đang gửi email HTML, bạn cần lưu ý rằng hầu hết các máy khách đều loại bỏ tất cả các lớp CSS. Sử dụng Juice (hoặc một cái gì đó giống như nó) để áp dụng tất cả các lớp CSS nội tuyến.
Mở mẫu với fs.readFile()
không còn cần thiết nữa. API Jade bao gồm phương thức compileFile()
biên dịch trực tiếp từ tệp.
var jade = require("jade");
var locals = {name: "Linus"},
render = jade.compileFile('template.jade'),
html = render(locals);
Phương thức Jade API cũng bao gồm phương thức renderFile()
trả về trực tiếp chuỗi html từ một tệp nhất định, làm cho nó trở nên đơn giản hơn.
var jade = require("jade");
var locals = {name: "Linus"},
html = jade.renderFile('template.jade', locals);
Đúng. Đây là câu hỏi liên quan đến cách kiểm tra lỗi: http://stackoverflow.com/questions/7283896/how-can-i-catch-a-rendering-error-missing-template-in-node-js-using- express-js/34709515 # 34709515 – Wtower
phiên bản ngọc nào? renderFile của tôi (v1.2.0) mong đợi 3 đối số – akcasoy
@akcasoy Đây là các tài liệu mới nhất: http://jade-lang.com/api/. Mô tả 'renderFile()' nằm ở phía dưới cùng và hiển thị 2 đối số được yêu cầu. – Nocturno
- 1. pugjs (ngọc bích) mẫu tải tập tin css động cơ
- 2. Làm thế nào để chuyển biến từ tệp mẫu ngọc bích sang tệp tập lệnh?
- 3. ngọc bích node.js - làm cách nào để đặt loại nội dung trong ngọc bích
- 4. Làm thế nào để biên dịch các mẫu ngọc bích thành các hàm JavaScript để sử dụng chúng ở phía máy khách?
- 5. Làm thế nào để biên dịch tập tin trong clojure
- 6. Làm thế nào để sử dụng gạch trong ngọc mẫu
- 7. Làm cách nào để lấy tên tệp của tập lệnh thực thi ngọc bích
- 8. Làm cách nào để thoát khỏi các dấu ngoặc nhọn bên trong các mẫu ngọc bích?
- 9. Làm thế nào để thể hiện và ngọc bích không nén html?
- 10. Render khối đơn trong ngọc bích
- 11. node.js - những lợi thế của việc sử dụng ngọc bích
- 12. làm thế nào để biên dịch tập tin aidl trong dự án android?
- 13. Làm thế nào để bạn có được trình biên dịch Python để làm việc?
- 14. Biến ngọc bích thành index.php thay vì index.html
- 15. Làm thế nào để thêm biên dịch flag -g vào một tập tin?
- 16. emacs keybinding để biên dịch tập tin C
- 17. mẫu ngọc bích node.js - cú pháp tùy chỉnh và thay thế?
- 18. Làm thế nào để sao chép các file ngọc biên soạn vào một thư mục đích bằng grunt
- 19. Hiển thị mẫu ngọc bích có bố cục (không có biểu thị)
- 20. Flask-Babel làm thế nào để sử dụng dịch tại Jinja mẫu tập tin
- 21. In ấn (hoặc unescaping JSON) với nodejs và ngọc bích
- 22. Liên kết với các tệp ngọc bích khác
- 23. Làm thế nào để có được đường dẫn đến tập tin kịch bản InnoSetup hiện tại?
- 24. Trán Python, làm thế nào để có được một trình biên dịch sẽ được sử dụng?
- 25. Làm thế nào để 'liên kết' tập tin đối tượng để thực thi/biên dịch nhị phân?
- 26. làm thế nào để "thực hiện" làm cho tập tin
- 27. Có công cụ tạo mẫu ngọc bích cho ASP.NET MVC không?
- 28. Làm thế nào để biên dịch một tệp với maven?
- 29. Cách sử dụng phân tích google từ tệp ngọc bích
- 30. Nhận dữ liệu từ mongodb (mongoose) đến ngọc bích xem
Và tôi khuyên bạn nên https://github.com/andris9/Nodemailer để gửi email –
cảm ơn, tất cả mọi thứ hoạt động hoàn hảo –
Bạn có thể sử dụng [app.render] (http://expressjs.com/api. html # app.render) để hiển thị mẫu cho chuỗi, như được đề cập trong [this] (http://stackoverflow.com/questions/15403791/in-express-js-app-render-vs-res-render-whats -the-difference # answer-15404507) câu trả lời gần đây hơn. –