2016-10-06 6 views
0

angle2コースに続いて、フロントエンドからコンテストを獲得しようとすると、次のバックエンドnode.jsサーバーコードスニペットが表示されました。(angular 2)node.jsルートを設定してJSONを追加してindex.htmlを返す

router.get('/', function(req,res,next) { // actually /contests/ 
Contest.find() 
    .populate('user', 'firstName') 
    .exec(function(err, docs) { 
    if (err) { 
    return res.status(404).json({ 
    title: 'Error !', 
    error: err 
    }); 
    } 
    res.status(200).json({ 
    message: 'Success', 
    obj: docs 
    }); 
    }); 
}); 

アプリ内から届くとうまくいくが、URL:.../contests /と入力してアクセスすると、ページに表示されるJSONオブジェクトのみが表示されるこれは通常のアプリでやりたいことではありません。

私がしたいことは、適切なページ(=すべてのページ(angular2 SPA)のindex.htmlファイルをレンダリングする)だけでなく、フロントエンドでアクセスできるいくつかのJSONデータをレスポンスに添付することです。それを達成する方法はありますか?ような何か:だけではなく、

res.json({ ... }) 

含まれていないルートの場合の

res.render('index', {message: 'Success', obj: docs}); // Not working 

は、そのリターンJSONを取得し、すべてが動作します。

私はグーグルでこれについての情報を見つけることができないので、コードスニペットが構造的に間違っているか、私がばかだと分かりません。私はnode.jsには比較的新しいです

ご意見、ご指摘、ご指摘ありがとうございます。

答えて

0

このようにコンテストにアクセスする必要はありません。そのようなGETをAPIエンドポイントに転送するだけで解決しました。

関連する問題