没有现成的机制可以做到这一点。不过,您可以像Django那样模仿它的风格:定义一个urls.js
文件,其中包含URL数组。首先从以下内容开始:
myviews.js
exports.Index = function( req, res, next ) {
res.send( "hello world!" );
};
urls.js
var MyViews = require( "mywviews.js" );
module.exports = [
{ name : "index", pattern : "/", view : MyViews.Index }
]
现在在 app.js(或主文件)中,您需要将 URL 绑定到 Express。例如:
app.js
var urls = require( "urls.js" );
for ( var i = 0, l = urls.length; i < l; i++ ) {
var url = urls[ i ];
app.all( url.pattern, url.view );
};
现在你可以定义自定义助手(Express 3.0风格):
var urls = require( "urls.js" ), l = urls.length;
app.locals.url = function( name ) {
for ( var i = 0; i < l; i++ ) {
var url = urls[ i ];
if ( url.name === name ) {
return url.pattern;
}
};
};
你可以轻松地在模板中使用它。现在问题是,它没有像Django中那样提供花哨的URL创建机制(在那里可以将附加参数传递给url
)。另一方面,你可以修改url
函数并进行扩展。我不想在这里讨论所有细节,但以下是一个示例,说明如何使用正则表达式(你应该能够将这些思路结合起来):
Express JS反向URL路由(Django风格)
请注意,我发布了这个问题,所以我之前也遇到了同样的问题。:D
{% url %}
模板标签 :) - nik_m