-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
152 lines (125 loc) · 4.31 KB
/
index.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
express = require('express');
var app = express();
var server = app.listen(8002, function() {
var host = server.address().address;
var port = server.address().port;
console.log('Tracker listening on http://%s:%s', host, port);
});
var request = require('request');
var fs = require('fs');
var MongoClient = require('mongodb').MongoClient;
var ObjectId = require('mongodb').ObjectID;
var db = function(callback) {
MongoClient.connect('mongodb://localhost:27017/tracker', function(err, database) {
if(!err)
console.log("Connected correctly to server.");
return callback(database);
});
}
var save = function(data) {
console.log('save', data);
return db(function(database) {
console.log('save?', data);
if(!data._id) {
data._id = ObjectId().toString();
database.collection('tracker').insertOne(data, function(err, result) {
console.log('result', err);
if(!err) {
console.log('saved cat', result.ops[0]);
//io.emit('saved', result.ops[0]);
return true;
}
database.close();
});
}
else {
// update
}
});
};
app.use(express.static(__dirname + '/public'));
//*
var io = require('socket.io')(server);
io.on('connection', function(socket) {
var cats = [];
socket.on('save', function(data) {
console.log('save');
console.log(data);
if(!data._id) {
data._id = ObjectId().toString();
db.collection('categories').insertOne(data, function(err, result) {
console.log('result', err);
if(!err) {
console.log('saved cat', result.ops[0]);
io.emit('saved', result.ops[0]);
}
});
}
else {
var id = {'_id' : data._id};
delete(data._id);
console.log('delete id');
console.log(data);
db.collection('categories').updateOne(id,
{$set: data},
function(err, results) {
console.log(results);
}
);
}
});
});
//*/
var count = 0;
var avg = false;
app.get('/save', function(req, res) {
//var a = save(req.query);
var value = req.query.value;
value = parseInt(value);
if(count == 5) {
io.emit('saved', avg / 5);
avg = 0;
count = 0;
}
else {
avg += value;
count++;
}
console.log('here', req.query.value);
res.send('saving: ');
});
app.get('/test', function(req, res) {
var url = 'https://api.projectoxford.ai/face/v0/detections?analyzesAge=1&analyzesGender=1';
var formData = {
// Pass a simple key-value pair
my_field: 'my_value',
// Pass data via Buffers
my_buffer: new Buffer([1, 2, 3]),
// Pass data via Streams
my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
// Pass multiple values /w an Array
attachments: [
fs.createReadStream(__dirname + '/attachment1.jpg'),
fs.createReadStream(__dirname + '/attachment2.jpg')
],
// Pass optional meta-data with an 'options' object with style: {value: DATA, options: OPTIONS}
// Use case: for some types of streams, you'll need to provide "file"-related information manually.
// See the `form-data` README for more information about options: https://github.com/felixge/node-form-data
custom_file: {
value: fs.createReadStream('/dev/urandom'),
options: {
filename: 'topsecret.jpg',
contentType: 'image/jpg'
}
}
};
request.post({url:'http://service.com/upload', formData: formData}, function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
});
fs.createReadStream('curtis1.jpg').pipe(request.post(url)).on('response', function(response) {
console.log(response.statusCode);
});
});