express.js入门,提供动态HTML

时间:2014-03-19 20:49:10

标签: node.js express

我正在使用node.js和express编写单页Web应用程序。经过一些在线教程后,我发现这是express.js如何使用HTML,javascript和css提供客户端目录

app.use(express.static(__dirname + '/public'));

除了公共目录必须具有静态的.html根文件之外,这种方法很有效。我想知道如何使用相同的方法提供动态HTML文件。

我想在页面中插入一些数据,例如顶部的“Hello user_name”。我如何为这个单个文件做到这一点。

我想只在启动时执行一次,之后我的应用程序将进行其余的API调用并获得简单的JSON响应,然后将其放入页面中。

1 个答案:

答案 0 :(得分:2)

据我所知,你不能使用express静态服务器来提供动态文件。要投放动态HTML,您需要使用模板引擎,例如jade或其中任何templating engines

Jade非常简单易用,默认情况下由express支持。要设置jade,请在应用配置块中包含以下行:

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

第一行设置您的views目录 - 从中​​提供模板文件。由于您只想提供索引文件,因此该目录将包含index.jade模板。第二行将玉器设置为模板引擎。

现在,您不需要使用静态服务器来为index.html提供服务,而是需要创建一个get路由'/'来提供索引文件,如下所示:

app.get('/', function(req, res) {
    res.render('index', {user_name: username});
});