格式Twitter API Date在node.js后端使用moment.js

时间:2016-04-07 16:25:03

标签: javascript node.js express twitter

我目前正在尝试格式化Twitter API日期,但我不确定如何访问它并在快递路由器中将其重新发送为数据,然后在Jade文件中使用。

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)
  })
})

我正在使用来自npm的Twitter API Client。我从utilitys.js文件中的promises获取我的instagram和文章json数据。

我可以通过#{tweets[i].created_at}使用jade访问twitter日期,但是我想在我之前使用moment.js格式化它们。

如果有人能指出我正确的方向我会有点失落,那会很棒。

1 个答案:

答案 0 :(得分: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
  }))

从技术上讲,您还可以修改原始tweet对象以包含created_at_formatted属性(或其他内容),然后返回tweet,但这在技术上有点像反模式。如果您不想从tweet对象中选择所需的每个属性,那么可能是一个快速解决方案。