2016-05-13 5 views
0

私はビデオを取得するためにいくつかのvimeo API呼び出しを行いましたが、サーバーからのリクエストを受け取ると、サーバーからのデータではなくそのパスのhtmlで応答します。私はまた、角クライアントサイド認証(https://github.com/fnakstad/angular-client-side-auth)を使用しています。私はこれに新しいので、なぜこれが起こるのか理解するのには苦労しています。httpリクエストはjsonの代わりにhtmlで応答します

server.jsクライアント側-AUTHのroutes.js内部

app.get('/api/mostviewed', function (req, res) { 
    MostViewed.find({}, { _id: 0, iframe: 1 }, function (err, docs) { 
    res.json(docs); 
    }); 
}); 

それをすべてを引き起こすこの、(このファイルはサーバー側にあります)があります:

{ 
    path: '/*', 
    httpMethod: 'GET', 
    middleware: [function(req, res) { 
     var role = userRoles.public, username = ''; 
     if(req.user) { 
      role = req.user.role; 
      username = req.user.username; 
     } 
     res.cookie('user', JSON.stringify({ 
      'username': username, 
      'role': role 
     })); 
     res.render('index'); 
    }] 
} 

どのようにすることができますが、私はこれを解決する?私はパスを維持したい: '/ *'、または同様の機能を維持しながらそれを変更するので、私はサーバーから自分のデータを取得することができます。あるいは、これを解決する別の方法がありますか?

編集:私はこの作ら ソリューションにVideo.js内部

{ 
    path: '/api/mostviewed', 
    httpMethod: 'GET', 
    middleware: [Video.getmostviewed] 
}, 

:あなたのケースでは

getmostviewed: function(req,res){ 
    MostViewed.find({}, { _id: 0, iframe: 1 }, function (err, docs) { 
    res.json(docs); 
    }); 
} 
+0

前に、同様のロジック以下の追加;' –

+0

はでしできれ、この上でより詳しく説明します例を挙げて? – KujAslani

答えて

1

は、クライアントが論理/api/mostviewedに対応する見つけることができませんでしたが、これ/*に達し、代わりにhtmlを表示しましたjsonです。

解決策

あなたは `res.render( 'インデックス')に条件を追加することができます/*

{ 
    path: '/api/*', 
    httpMethod: 'GET', 
    middleware: [function(req, res) { // sample middleware logic 
     var role = userRoles.public, username = ''; 
     if(req.user) { 
      role = req.user.role; 
      username = req.user.username; 
     } 
     res.cookie('user', JSON.stringify({ 
     'username': username, 
     'role': role 
     })); 
    }] 
}, 
+0

私はこれを答えとして受け入れます。正しい方向に私を案内してくれてありがとう。私のやり方で編集しました。 – KujAslani

関連する問題