基本路线是这样的:
app.get('/', function(req, res){
res.send('hello world');
});
Run Code Online (Sandbox Code Playgroud)
是否可以命名该路线并使其在任何模板中可用,因此可以像这样使用:
app.get('/', name="index", function(req, res){
res.send('hello world');
});
Go to site <a href="{% url index %}">index page</a>.
Run Code Online (Sandbox Code Playgroud)
灵感来自Django :)
fre*_*ish 13
没有开箱即用的机制.但是你可以像这样模仿Django的风格:定义urls.js
一个包含一系列URL的文件.首先从:
myviews.js
exports.Index = function( req, res, next ) {
res.send( "hello world!" );
};
Run Code Online (Sandbox Code Playgroud)
urls.js
var MyViews = require( "mywviews.js" );
module.exports = [
{ name : "index", pattern : "/", view : MyViews.Index }
]
Run Code Online (Sandbox Code Playgroud)
现在在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 );
};
Run Code Online (Sandbox Code Playgroud)
现在您可以定义自定义帮助程序(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;
}
};
};
Run Code Online (Sandbox Code Playgroud)
并且您可以在模板中轻松使用它.现在的问题是,它没有像Django那样为您提供花哨的URL创建机制(您可以在其中传递其他参数url
).另一方面,您可以修改url
功能并扩展它.我不想在这里详细介绍所有细节,但这里是一个如何使用正则表达式的示例(您应该能够将这些结合到一起):
请注意,我发布了这个问题,所以我前段时间遇到了同样的问题.:d
归档时间: |
|
查看次数: |
9356 次 |
最近记录: |