2011-12-20 115 views
3

在节点服务器上使用Express框架时,如何从:http://url:port/user?u=username改为http://url:port/user/username如何在Express和Node.js中使用slug?

当前的JavaScript服务器端代码:

app.get('/user', function(req, res){ 
    var username = req.param("u");  
    users.findOne({username : username}, function(err, result){  
     var user = { 
     username : result.username, 
     name : result.name, 
     surname : result.surname, 
     email : result.email  
     } 

     res.render('user', 
     {user : user} 
    ); 
    }) 
    }) 

回答

9

你并不需要一个蛞蝓,你只需要指定像下面这样的路线:

app.get('/user/:username', function(req, res){ 
    var username = req.params.username;  
    users.findOne({username : username}, function(err, result){  
    var user = { 
     username : result.username, 
     name : result.name, 
     surname : result.surname, 
     email : result.email  
    } 

    res.render('user', 
     {user : user} 
    ); 
    }) 
}) 
+0

了'VAR user'分配看起来对我来说很浪费,只需将结果变量重命名为“user”,并将其传递给res.render,如果err未定义。 – rdrey 2012-03-17 21:43:05

相关问题