2011-12-20 7 views
3

ノード・サーバーでExpressフレームワークを使用する場合は、http://url:port/user?u=usernameからhttp://url:port/user/usernameに移動するにはどうすればよいですか?ExpressとNode.jsでスラッグを使用するにはどうすればよいですか?

現在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"に変更し、errが定義されていなければres.renderに渡します。 – rdrey

関連する問題