Express-相关杂项方法

app.enable(名称)

将布尔值设置nametrue,其中name是应用程序设置表中的一个属性。调用app.set('foo', true)Boolean属性与调用相同app.enable('foo')

1
2
3
app.enable('trust proxy');
app.get('trust proxy');
// => true

app.enabled(名称)

true如果设置name已启用(true),则返回,其中name是应用程序设置表中的一个属性。

1
2
3
4
5
6
app.enabled('trust proxy');
// => false

app.enable('trust proxy');
app.enabled('trust proxy');
// => true

app.engine(分机,回拨)

将给定的模板引擎注册callbackext。 默认情况下,Express会require()根据文件扩展名引擎。例如,如果您尝试呈现“foo.pug”文件,Express会在内部调用以下内容,并缓存require()后续调用以提高性能。

1
app.engine('pug', require('pug').__express);

对于未提供.__express开箱即用的引擎,或者您希望将不同的扩展“映射”到模板引擎,请使用此方法。 例如,要将EJS模板引擎映射到“.html”文件:

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

在这种情况下,EJS提供了.renderFile()一种具有与Express期望相同的签名的方法:(path, options, callback)尽管注意它在ejs.__express内部将此方法别名,因此如果您使用“.ejs”扩展,则不需要执行任何操作。 某些模板引擎不遵循此约定。该 consolidate.js图书馆地图节点模板引擎要遵守这个习惯,所以他们与快递无缝协作。

1
2
3
var engines = require('consolidate');
app.engine('haml', engines.haml);
app.engine('html', engines.hogan);

app.get(名称)

返回nameapp setting 的值,其中name是app settings表中的一个字符串 。例如:

1
2
3
4
5
6
app.get('title');
// => undefined

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

app.get(path,callback [,callback …])

使用指定的回调函数将HTTP GET请求路由到指定的路径。

app.listen(path,[callback])

启动UNIX套接字并侦听给定路径上的连接。此方法与Node的http.Server.listen()相同。

1
2
3
var express = require('express');
var app = express();
app.listen('/tmp/sock');

pp.param([name],callback)

添加回调触发器以路由参数,其中name是参数的名称或其数组,并且callback是回调函数。回调函数的参数是请求对象,响应对象,下一个中间件,参数的值和参数的名称。 如果name是数组,callback则按声明的顺序为其中声明的每个参数注册触发器。此外,对于除最后一个之外的每个声明的参数,next对回调内部的调用将调用下一个声明的参数的回调。对于最后一个参数,调用next将为当前正在处理的路由调用下一个中间件,就像它name只是一个字符串一样。 例如,当:user路径路径中存在时,您可以映射用户加载逻辑以自动提供req.user给路径,或者对参数输入执行验证。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
app.param('user', function(req, res, next, id) {

// try to get the user details from the User model and attach it to the request object
User.find(id, function(err, user) {
if (err) {
next(err);
} else if (user) {
req.user = user;
next();
} else {
next(new Error('failed to load user'));
}
});
});

Param回调函数是定义它们的路由器的本地函数。它们不是由已安装的应用程序或路由器继承的。因此,定义的参数回调app只能由路由上定义的路由参数触发app。 所有param回调都将在param发生的任何路由的任何处理程序之前被调用,并且它们将在请求 - 响应循环中仅被调用一次,即使参数在多个路由中匹配,如以下示例所示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
app.param('id', function (req, res, next, id) {
console.log('CALLED ONLY ONCE');
next();
});

app.get('/user/:id', function (req, res, next) {
console.log('although this matches');
next();
});

app.get('/user/:id', function (req, res) {
console.log('and this matches too');
res.end();
});
  • 版权声明: 本博客所有文章,未经许可,任何单位及个人不得做营利性使用!转载请标明出处!如有侵权请联系作者。
  • Copyrights © 2015-2023 翟天野

请我喝杯咖啡吧~