2011-12-18 30 views
13

Sau khi trở nên thích thú với kiểu mẫu mustache.js, tôi muốn tiếp tục sử dụng nó trong node.js.Sử dụng mustache.js cùng với node.js?

Tôi đã có thể cài đặt và xác nhận rằng nó đang hoạt động, nhưng tôi không thể tránh được cách sử dụng nó cho tệp mẫu.

Làm cách nào để tải mẫu có tên template.html và áp dụng phép thuật của bộ ria mép cho nó trong node.js?

Trả lời

15

fs.readFileSync là phiên bản đồng bộ fs.readFile, vì vậy nó sẽ được ngăn chặn. Dưới đây là một ví dụ cơ bản về cách bạn có thể sử dụng fs.readFile với mustache.js sẽ trả về mẫu ria mép trong cuộc gọi lại.

var object_to_render = {key: "value", ...}; 

fs.readFile(path_to_mustache_template, function (err, data) { 
    if (err) throw err; 
    var output = Mustache.render(data.toString(), object_to_render); 

    // do something with output... 
}); 
+0

Cảm ơn câu trả lời của bạn. Đã không nhận thấy rằng nó đã được đồng bộ, nhưng nó đã làm công việc. Chào mừng bạn đến với SO BTW :) – Industrial

+0

Awesome :) Ví dụ này chỉ là một trong những cách tôi đã bao gồm các mẫu ria mép; có thể có những cách khác/tốt hơn –

5

Tôi đã kết thúc tạo một chức năng trợ giúp nhỏ để tải tệp mẫu dưới dạng chuỗi;

function loadTemplate(template) { 
    return this.fs.readFileSync(app.set('views') + template+ '.html').toString(); 
} 

var html = Mustache.to_html(loadTemplate('myView'), {key: "value", ...}); 

res.send(html); 
Các vấn đề liên quan