部分常用Express方法详解

app.set(name, value)

 分配给name一个value,并将name作为app settings table的一个属性。

使用app.set('foo', true) 相当于调用 app.enable('foo')。相似的,使用 app.set('foo', false) 相当于调用 app.disable('foo')。

通过使用app.get()重新得到该值。

app.set('title', 'My Site');
app.get('title'); // "My Site"

app.engine(ext, callback)

将ext交给回调函数处理,这个回调函数由模板引擎提供。

默认的,Express会基于文件的扩展名来 require()模板引擎。 比如,如果你渲染 “foo.jade” 文件,Express会在内部调执行下面这些代码,为了提升性能,会缓存require()的结果用于之后的一系列调用。

app.engine('jade', require('jade').__express);

如果模板引擎没有提供 .__express方法(这句笔者也不太理解什么意思),或者你希望让模板引擎映射一个和默认不同的扩展,你可以使用app.engine()方法。

比如说,让EJS模板引擎映射到 “.html” 文件:

app.engine('html', require('ejs').renderFile);

这个例子中,EJS提供了一个.renderFile()方法,这个方法符合Express期待的形式:(path, options, callback),于是这个renderFile方法在内部会被化名为  ejs.__express 所以如果你渲染使用'.ejs'文件时你不需要做任何事情,一切都在你看不见的内部解决了。

有一些模板引擎并不遵守这个约定, consolidate.js 库可以让Node的模板引擎去遵守这一约定,让这些模板引擎可以和Express无缝对接。

var engines = require('consolidate');
app.engine('haml', engines.haml);
app.engine('html', engines.hogan);
原文地址:https://www.cnblogs.com/A-dam/p/5052705.html