Из ответа @ freakish :
Для этого не существует готового механизма.Однако вы можете имитировать стиль 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;
}
};
};
и вы можете легко использовать его в своем шаблоне.Теперь проблема в том, что он не предоставляет вам причудливый механизм создания URL, как в Django (где вы можете передавать дополнительные параметры в url
).С другой стороны, вы можете изменить функцию url
и расширить ее.Я не хочу вдаваться в подробности, но вот пример того, как использовать регулярные выражения (вы должны объединить их с идеями вместе):
Экспресс обратный URL-маршрут JS (Django)style)
Обратите внимание, что я разместил вопрос, поэтому у меня была такая же проблема некоторое время назад.: D