部分常用Express方法详解

本文介绍了Express.js中app.set方法的使用,包括设置应用程序级变量及如何通过app.get获取这些值。此外还详细讲解了app.engine方法的用途,即为特定的文件扩展名注册模板引擎,包括默认行为及如何自定义模板引擎。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值