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