2016-04-07 9 views
0

私は現在Twitter APIをフォーマットしようとしていますが、どのようにアクセスするのかわからないので、エクスプレスルータ内でデータとして再送信してヒスイファイル。フォーマットTwitter APIの日付はnode.jsバックエンドでmoment.jsを使用

router.get('/', (req, res, next) => { 
    client.get('statuses/user_timeline', params, function (error, tweets, response) { 
    Promise.all([ 
     getArticles(), 
     getInstas() 
    ]) 
     .then(data => res.render('pages/news-centre/home', { 
     articles: data[0].slice(0, 4), 
     tweets: tweets, 
     instagram: data[1].data 
     })) 
    .catch(next) 
    }) 
}) 

私はTwitter API Clientをnpmから使用しています。私はutilitys.jsファイルの約束事から私のinstagramとarticle jsonデータを取得しています。

私は翡翠を使用して#{tweets[i].created_at}でTwitterの日付にアクセスできますが、私はそれを行う前にmoment.jsを使用して書式を設定したいと思います。

誰かが正しい方向に私を指すことができるなら、私は少し失われているだろうか?

答えて

1

tweetsに何の形式を知らなくても、確かに言うのは難しいが、あなたはおそらくこれを行う必要があります。

.then(data => res.render('pages/news-centre/home', { 
    articles: data[0].slice(0, 4), 
    tweets: tweets.map(tweet => ({ 
     text: tweet.text, 
     created_at: moment(tweet.created_at, INPUT_FORMAT).format(OUTPUT_FORMAT), 
     // etc, grab the rest of the fields you need 
    })), 
    instagram: data[1].data 
    })) 

あなたが技術的にもcreated_at_formatted財産(か何か)を含むように、元のtweetオブジェクトを変更することができその後、tweetを返すが、それは技術的には少しパターンが違う。あなたがtweetオブジェクトから必要とするすべてのプロパティを個取り出すのが気に入らない場合は、すばやい解決策になるかもしれません。

+0

'tweets'はtwitterユーザーのAPI呼び出しのjsonデータを返します。ここの例はhttps://dev.twitter.com/rest/reference/get/statuses/user_timelineです。このソリューションは他のデータに影響しませんか?私も '#{tweets [i] .text}'を使用しています。あまり意味をなさないのであれば謝罪してください - APIやエクスプレスルーティングに少し新しく! –

+0

マップは元のアイテムを変更しません(コールバックで明示的に変更しない限り、通常は悪いアイデアです)が、あなたが取りたいものを決める必要があります。基本的には、ホームページをレンダリングするために必要なものを手に入れてください。改善された答えを更新しました。 – dvlsg

関連する問題