2017-01-26 14 views
0

node.jsアプリケーションでapiを使用してJSONデータを取得していますが、コンソールで印刷すると機能しますが、私のアプリテンプレートに表示するデータを取得する。ここでハンドルバーテンプレートデザイン(node.js)のコンソールでjsonデータを使用する方法

は私がからデータを取得していますAPIの私のコードです:ここでは

Router.get('/movie/search', function(req,res){ 
    var search=req.query; 

    imdb.getReq({name: search.moviename},(err,things) => { 
    console.log(things); 
    if (err) { 

    } 
     JSON:true; 
     res.render('movie/search', {movieList: things}); 

    }); 
}); 

コンソールデータである:

TVShow { 
    title: 'Gu Family Book', 
    _year_data: '2013–', 
    year: 2013, 
    rated: 'N/A', 
    released: 2013-04-07T21:00:00.000Z, 
    runtime: 'N/A', 
    genres: 'Action, Comedy, Fantasy', 
    director: 'N/A', 
    writer: 'N/A', 
    actors: 'Sung-ha Jo, Hye-Young Jung, Hee-won Kim, Sung-jae Lee', 
    plot: 'N/A', 
    languages: 'Korean', 
    country: 'South Korea', 
    awards: 'N/A', 
    poster: 'https://images-na.ssl-images-amazon.com/images/M/MV5BMTcwM2IxNWYt[email protected]._V1_SX300.jpg', 
    metascore: 'N/A', 
    rating: '8.1', 
    votes: '591', 
    imdbid: 'tt2816734', 
    type: 'series', 
    totalseasons: 1, 
    response: 'True', 
    series: true, 
    imdburl: 'https://www.imdb.com/title/tt2816734', 
    _episodes: [], 
    start_year: 2013, 
    end_year: null } 

ハンドルバーテンプレートコード:

{{#each movieList}} 
    <div class="movie"> 
    <img src="{{poster}}"> 
    <br>Type:{{type}}</br> 
    <br class="movieinfo">Year:{{_year_data}}</br> 
    <br>IMDb:{{imdbid}}<br> 
    <br>Discription:{{plot}}</br> 
{{/each}} 

私のアプリにはデータが表示されません。

+1

'things'は配列またはオブジェクトですか? – Ananth

+0

'movieList:JSON.parse(もの)'を試しました –

+0

私はこれを試してみましたが、このエラーが表示されませんでした。 '未処理の拒否SyntaxError:JSONの予期しないトークンu(位置0')。 – Sam

答えて

0

thingsは、ではありません。アレイですがオブジェクトです。 #eachingによってmovieList以上のオブジェクトはMovieのリストを反復処理するのではなく、単一のオブジェクトの各プロパティを繰り返し処理します。すなわちtitle_year_datayearなどです。ブロック#eachの中には、現在の反復されたプロパティーの検索で、ヒストグラム内の各項目がプロパティーキーとして使用されています。 EX。、title.postertitle.typeなど

我々はMovieオブジェクトのリストが、単一のものを扱っていないので、のはmovieに私達のテンプレートデータオブジェクトの名前を変更してみましょう。次に、テンプレートで#eachブロックを削除し、movieオブジェクトのプロパティに直接アクセスするだけです。

コールをレンダリング:

res.render('movie/search', { movie: things }); 

テンプレート:

はまた、私はJSON:true;ラインがあなたのコードで行うことを目的としているのか分からないが、それは削除する必要があります。また、テンプレート内に閉じたdivタグがなくなり、間違って終了タグを含むこともあります。 HTML中断タグの正しい使い方はhereです。私はテンプレートでこれらのエラーを修正し、 "Description"に入力ミスを修正しました。

関連する問題