没有开箱即用的机制。但是,您可以像这样模仿 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。例如像这样:
应用程序.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