-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnode_angular.js
80 lines (65 loc) · 1.91 KB
/
node_angular.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
var fs = require("fs");
var io = require("sockets.io");
var express = require("express");
var mongo = require("mongodb");
var https = require("https");
var config = fs.readFileSync("config.json");
var host = config.host;
var port = config.port;
var dbport = mongo.Connection.DEFAULT_PORT;
var TwitterCollection;
var AngularCollection;
var options = {
host:"stream.twitter.com",
path:"/1/statuses/filter.json?track=bieber",
headers:{
"Authorization":"Basic"+new Buffer("username:password").toString("base64")
}
};
var db = new mongo.db("node_angular", new mongo.Server(host,port,{}));
db.open(function(error){
db.collection("users",function(error,collection){
AngularCollection = collection;
});
db.collection("tweets",function(error,collection){
TwitterCollection = collection;
});
});
var request = https.request(options, function(response){
request.on("data",function(chunk){
var tweet = JSON.parse(chunk);
io.sockets.emit("tweet",tweet);
TwitterCollection.insert(tweet,function(error){
if(error){
console.log("insertion failed");
} else {
console.log("successfully inserted");
}
});
});
request.on("end",function(){
console.log("connection lost or ended");
});
});
request.end();
var app = express();
app.use(app.router);
app.use(express.static(__dirname+"public"));
app.get("/",function(request,response){
var content = fs.readFile("index.html");
response.setHeader({"Content-Type":"text/html"});
response.send(content);
});
app.get("/users/:id",function(request,response){
AngularCollection.find({"id":request.params.id},function(error,cursor){
response.send(cursor);
});
});
app.get("/tweets/:username",function(request,response){
TwitterCollection.find({"name":request.params.username},function(error,cursor){
response.send(cursor);
});
});
app.listen(host,port,function(){
console.log("Listening: "+host+" : "+port);
});