-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
131 lines (106 loc) · 3.61 KB
/
Copy pathserver.js
File metadata and controls
131 lines (106 loc) · 3.61 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
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
/**
* Created by jamiecho on 6/13/16.
*/
var express = require('express');
var formidable = require('formidable');
var bodyparser = require('body-parser');
var path = require('path');
var async = require('async');
var app = express();
var db = require('./db'); //deals with database connection
app.use(bodyparser.json());
app.use(express.static(path.join(__dirname, 'tmp'))); //static resources like images.
app.set('view engine', 'jade');
app.get('/upload', function (req, res) {
res.render('upload');
});
app.post('/upload', function (req, res) {
var form = new formidable.IncomingForm();
form.uploadDir = __dirname + '/tmp';
form.keepExtensions = true;
form.parse(req, function (err, fields, files) {
if (!err) {
console.log('Fields: ', fields);
console.log('Files Uploaded: ' + files.photo);
db.write(fields.personInfo, fields.tagInfo, files.photo, function () {
res.render('upload');
});
} else {
//set header, error handling, etc.
res.end('ERROR');
}
});
});
app.get('/', function(req,res){
res.render('login');
});
app.get('/view',function(req,res){
res.render('login');
//
});
app.post('/view', function (req, res) {
var form = new formidable.IncomingForm();
form.parse(req,function(err,fields,files){
if(fields.id == 'TunaDr3ams'){
//really really unsafe to embed id in js and put on github,
// but better than nothing
db.find(null, function (error, entries) {
//console.log(tags);
async.each(entries,
// for each tag
function (entry, callback) {
db.read(entry._id, function (res) {
callback();
})
},
//on result
function (err) {
console.log("HERE");
var entries_reform = entries.map(function(entry){
var entry_reform = {
_id : entry._id,
photo : entry.photo,
personInfo : JSON.parse(entry.personInfo),
tagInfo : JSON.parse(entry.tagInfo)
};
return entry_reform;
});
res.render('view', {entries: entries_reform});
}
);
});
}else{
res.end('INVALID LOGIN');
}
});
//testing
//db.imread('olin.jpg').on('finish', function () {
// res.render('view', {data: ['olin.jpg']});
//});
});
app.get('/query', function(req,res){
var name = req.query.name; //person name
db.find(null, function(err,entries){
var mytags = [];
for(i in entries){
var entry = entries[i];
var personInfo = JSON.parse(entry.personInfo);
if(personInfo.name == name){
mytags.push(entry.tagInfo);
}
}
res.end(JSON.stringify(mytags));
});
});
app.post('/delete',function(req,res){
var form = new formidable.IncomingForm();
form.uploadDir = __dirname + '/tmp';
form.keepExtensions = true;
form.parse(req, function (err, fields, files) {
db.delete(fields.id);
res.end("DELETE COMPLETE");
});
});
app.listen(process.env.PORT || 8001, function () {
console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
});