2015-12-08 2 views
1

Я использую twitter API для получения твитов, а затем вставляю их в массив. Я хочу, чтобы затем напечатать весь массив (я просто хочу знать, что могу передать значения) в свой HTML-документ и отобразить его. Благодаря!NodeJS ExpressJS Как распечатать массив результатов API?

код ниже:

var express = require("express"); 
var twit = require("twitter"), 
    twitter = new twit({ 
     consumer_key: 'SECRET', 
     consumer_secret: 'SECRET', 
     access_token_key: 'SECRET', 
     access_token_secret: 'SECRET' 
    }); 

var tweets = [], 
    util = require('util'); 

twitter.stream('statuses/filter', {track: 'love, hate'}, function(stream){ 
    stream.on('data', function(data){ 
     if ('delete' in data === false){ 
      tweets.push(data); 
     } 
    }); 

    setTimeout(function(){ 
     console.log('Collected ' + tweets.length + ' tweets.'); 
     stream.destroy(); 
    }, 1000); 
}); 



var app = express(); 
var path = require('path'); 


app.set('port', process.env.PORT || 2400); 

function home(req,res){ 
    res.setHeader("Content-Type", 'text/html'); 
    res.sendFile(path.join(__dirname + '/index.html')); 
} 

app.use(express.static(__dirname + '/public')); 

app.get('/', home); 
app.listen(app.get('port')); 

console.log('Server running at 2400'); 

Спасибо, ребята. Я выяснил остальное отсюда, зная, что мне нужно использовать Jade: Having problems with passing array to jade template in node.js

+0

Похоже, у вас есть твердая часть сделана. Теперь все, что вам нужно сделать, это сделать ваш твиты массив как html. Я предлагаю вам взглянуть на [Jade Template Language] (http://jade-lang.com/) для рендеринга. В частности, в синтаксисе [итерации] (http://jade-lang.com/reference/iteration/). Это позволяет вам перебирать массив и отображать html для каждого элемента массива. – Nocturno

ответ

0

Использование Jade Template Engine, я бы сделал только несколько небольших изменений в вашем коде, а затем использовал шаблон Jade вместо html файл.

Ваш код:

app.set('views', './views'); 
app.set('view engine', 'jade'); 

function home(req,res) { 
    res.setHeader("Content-Type", 'text/html'); 
    res.render('index', {tweets: tweets}); 
} 

index.jade

ul 
    each tweet in tweets 
    li= tweet 

Вот те документы, которые помогут вам включить Джейд в приложение:

Using template engines with Express

Jade Template Engine

Jade iteration syntax

+0

Большое спасибо. Джейд очень полезен, но я хочу передать массив в HTML, чтобы манипулировать и визуализировать данные с помощью D3JS. –

+0

Ничего. Знать использовать Джейд достаточно! Я понял все остальное. –

0

Вы пытаетесь создать приложение реального времени из данных потока твиттера в пользовательскую сеть? Использование socket.io - это самый простой способ испускать данные в веб-интерфейс в реальном времени

+0

Не совсем точное время. Я хочу, чтобы пользователь набрал #. Затем приложение просто получит твиты с этим # и передаст массив в HTML, который будет визуализироваться после d3js. –

Смежные вопросы