-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
55 lines (40 loc) · 1.51 KB
/
app.js
File metadata and controls
55 lines (40 loc) · 1.51 KB
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
/*eslint-env node*/
var express = require('express'),
cfenv = require('cfenv'),
app = express(),
Cloudant = require('cloudant'),
appEnv = cfenv.getAppEnv(),
cloudant = Cloudant("https://78cfae91-2492-4226-98bc-a10cfd059aa0-bluemix:b413b028d3c69546d9e15a92ad2ecf8e72ad7127d85bff83d23ac3bb1d19c28b@78cfae91-2492-4226-98bc-a10cfd059aa0-bluemix.cloudant.com"),
data = cloudant.use('chat'),
feed = data.follow({since: "now", include_docs: true}),
bodyParser = require("body-parser");
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
var io = require('socket.io').listen(app.listen(appEnv.port, '0.0.0.0', function() {
console.log("server starting on " + appEnv.url);
}));
io.sockets.on('connection', function (socket) {
socket.emit('message', { message: 'You just joined the chat!' });
socket.on('send', function (data) {
io.sockets.emit('message', data);
});
});
feed.on('change', function (change) {
io.sockets.emit('message', {message: change.doc['user'] + ": " + change.doc['message']});
})
feed.follow();
app.post("/sendAndSave", function(req,res,next){
var username = req.body.username;
var message = req.body.message;
var date = new Date();
data.insert({ "user": username, "message": message, 'time': date});
});
app.get("/upToDateMessages", function(req,res,next){
data.find({selector:
{"time": {"$gt": null}},
"sort": [{"time": "asc"}]
}, function(er, result) {
res.send(result);
});
});