2016-08-22 3 views
3

URLからパラメータ(ユーザー名)を受け取り、このユーザーに関する情報をレンダリングする玉のページがあります。ただし、ページは何度もレンダリングされています。私がURLを印刷すると、初めて(ユーザー名を使って)完全であるかのように見えます。私はノードjsと角度を使ってデータを提供しています。ここに私のコードは次のとおりです。玉のページが複数回レンダリングされる

NODE JS:(myuserのは、私がテストしてい既存のユーザーの静的な値である)

router.get('/personel', function (req, res) { 
    var user_name = req.query['username']; 
    var fullname= 0; 
    var fields = ['fullname']; 

    if(req.url == '/personel?username=myuser'){ 
     models.users.findAll({ 
      attributes: fields, 
      limit: 1, 
      where: {username: user_name} 
     }).then(function (result) { 

      res.render('personel', 
      {  
       title : 'Personel', 
       username: user_name, 
       fullname: result[0].fullname, 
      }) 
     }); 
     console.log(req.url); 
    } 
}); 

コントローラ:

Todos.get().success(function(data) { 
    if ($scope.todosi != undefined) { 
     $scope.todos = data; 
     $scope.loading = false; 
    } 
}); 

JADEコード:

form 
     input(type='text', ng-model='todosi.username', value=username) 
     table.table.table-hover 
      tr 
      td full name 
      td 
       input(type='text', ng-model='todosi.fullname', placeholder=fullname) 
     button.btn.btn-primary.btn-lg(type='submit', ng-click='createTodo()') Update 

ブラウザにhttp://localhost:31/apiv2/customer/personel?username=myuserというようにページをロードすると、ユーザー名は空ですがフルネームha ■実際のフルネームの値。ログに

、req.urlと私はMozillaの開発者向けツールで、最初は、その後のみ/personel

しかし/personel?username=myuserを取得 - >ネットワーク、リファラが常にhttp://localhost:31/apiv2/customer/personel?username=myuser

である私はレンダリングするためにページを強制しようとしましたURLだけをパラメータとしてユーザ名が含まれていますが、何も変化しない場合

PS:それはここを見てかもしれないものにもかかわらず、ヒスイが正しく意図し、エラーを与えていません。

答えて

1

まず、あなたがより良い方法のparamクエリを持っている場合です。

router.get('/personel/:username', function (req, res) {}); 

第二に、私はあなたが別の(同じ)ルートを持っているので、あなたのページが複数回読み込まれていることと思います。

あなたは、このソリューションを使用する場合:

router.get('/personel/:username', function (req, res) {}); 

をごルートの順序を確認してください。 この順序は働いていません:それはキャッチ:username

ようです

/personel/:username 
/personel/sayhello 

sayhelloので、

関連する問題