2
我用快遞框架Nose.JS的nooby用戶,我嘗試做一個引擎HTML這個層次:快速渲染功能與回調返回的字符串,而不是HTML
<template>
<layout>
<view>
</layout>
</template>
所以,這是我server.js文件(croped):
var express = require('express')
, http = require('http');
var app = module.exports = express();
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);
app.use(express.favicon());
app.use(express.static(__dirname + '/public'));
});
// Routes
app.get('/', function(req, res) {
var data = { /* Some data here */ };
/* Probleme start here :
* I want render the view HTML,
* then render the layout HTML with the view content,
* then render the template to display
*/
res.render('view', data, function(err, view) {
data.view = view;
res.render('layout', data, function(err, layout) {
data.layout = layout;
res.render('template', data);
});
});
});
就像我說的代碼: 我想渲染HTML視圖,然後渲染與視圖內容佈局HTML,然後渲染顯示模板。但data.view和data.layout是字符串,而不是HTML(如:HEADER<br/>Menu<br/>
),所以如果我把HTML代碼在這個文件,我有最後的頁面上的HTML代碼..
- --- [編輯:添加.ejs文件] -----
template.ejs
<div><%= layout %></div>
layout.ejs
個HEADER<br/>
Menu<br/>
<%= view %>
FOOTER
view.ejs
<p>View</p>
我怎樣才能得到HTML顯示的結果上data.view和data.layout?!
謝謝大家和對不起我的英語
亞瑟
哇感謝你,但我該如何使用它?!我使用Express的版本〜3.3.4。 :/ – Arthur
它可能也適用於Express 3.x,但我沒有嘗試過。 – mscdex
我已經更新了所有的軟件包,並使用<% - 而不是<%=,它的工作!吳? – Arthur