leeseohyeon

.

...@@ -13,6 +13,7 @@ var fileRouter = require('./routes/file/router'); ...@@ -13,6 +13,7 @@ var fileRouter = require('./routes/file/router');
13 //var trashcanRouter = require('./routes/trashcan/router'); 13 //var trashcanRouter = require('./routes/trashcan/router');
14 var folderRouter = require('./routes/folders'); 14 var folderRouter = require('./routes/folders');
15 var quickRouter = require('./routes/quick'); 15 var quickRouter = require('./routes/quick');
16 +var contactRouter = require('./routes/contact')
16 17
17 18
18 var passport = require('passport'); 19 var passport = require('passport');
...@@ -63,6 +64,8 @@ app.use('/api/folder', folderRouter); ...@@ -63,6 +64,8 @@ app.use('/api/folder', folderRouter);
63 //app.use('/users', usersRouter); 64 //app.use('/users', usersRouter);
64 app.use('/api/file', fileRouter); 65 app.use('/api/file', fileRouter);
65 app.use('/api/quick', quickRouter); 66 app.use('/api/quick', quickRouter);
67 +app.use('/api/contact',contactRouter);
68 +//app.use('/api/trashcan', trashcanRouter);
66 69
67 // catch 404 and forward to error handler 70 // catch 404 and forward to error handler
68 app.use(function(req, res, next) { 71 app.use(function(req, res, next) {
......
This diff is collapsed. Click to expand it.
...@@ -11,15 +11,18 @@ ...@@ -11,15 +11,18 @@
11 "crypto-js": "^4.0.0", 11 "crypto-js": "^4.0.0",
12 "debug": "~2.6.9", 12 "debug": "~2.6.9",
13 "ejs": "^3.1.3", 13 "ejs": "^3.1.3",
14 + "excel4node": "^1.7.2",
14 "express": "~4.16.1", 15 "express": "~4.16.1",
15 "express-session": "^1.17.1", 16 "express-session": "^1.17.1",
16 "formidable": "^1.2.2", 17 "formidable": "^1.2.2",
17 "http-errors": "~1.6.3", 18 "http-errors": "~1.6.3",
18 "moment": "^2.26.0", 19 "moment": "^2.26.0",
19 "morgan": "~1.9.1", 20 "morgan": "~1.9.1",
21 + "multer": "^1.4.2",
20 "mysql": "^2.18.1", 22 "mysql": "^2.18.1",
21 "passport": "^0.4.1", 23 "passport": "^0.4.1",
22 "pug": "^3.0.0", 24 "pug": "^3.0.0",
23 - "request": "^2.88.2" 25 + "request": "^2.88.2",
26 + "xlsx": "^0.16.2"
24 } 27 }
25 } 28 }
......
1 +var express = require('express');
2 +var router = express.Router();
3 +const XLSX = require('xlsx');
4 +var multer = require('multer');
5 +var fs = require('fs');
6 +var xl = require('excel4node');
7 +// var pool = require('./../routes/modules/database');
8 +
9 +//파일 저장위치와 파일이름 설정
10 +var storage = multer.diskStorage({
11 + destination: function (req, file, cb) {
12 + cb(null, 'public/upload');
13 + },
14 + //파일이름 설정
15 + filename: function (req, file, cb) {
16 + cb(null, file.originalname);
17 + }
18 +})
19 +
20 +//파일 업로드 모듈
21 +var upload = multer({ storage: storage })
22 +
23 +// 연락처 백업, 삭제, 검색
24 +/*
25 +contact_upload : 연락처 파일 업로드 모듈
26 +input : 사용자가 연락처를 저장해놓은 csv 혹은 xlsx 파일
27 +output : 연락처 저장 성공 여부
28 +*/
29 +router.post('/contact_upload', upload.single('file'), function(req, res, next) {
30 + // console.log(req);
31 + var user_id = req.query.id;
32 + var file = req.file;
33 + var workbook = XLSX.readFile('public/upload/contact.xlsx');
34 + var firstWSheetName = workbook.SheetNames[0];
35 + var firstWSheet = workbook.Sheets[firstWSheetName];
36 + var name = [];
37 + var phone = [];
38 + var email = [];
39 + var added_date = [];
40 + var length = firstWSheet['!ref'][4];
41 + var temp ="";
42 +
43 + var sqlquery = "insert into contact(user_id,name,email,phone,added_date) values";
44 + for(var i=1;i<length;i++)
45 + {
46 + for(var j=0;j<4;j++)
47 + {
48 + if(j==0){
49 + temp = "A" + (i+1);
50 + name.push(firstWSheet[temp].v);
51 + sqlquery += ' ("' + user_id + '","'+name[i-1];
52 + }
53 + else if(j==1){
54 + temp = "B" + (i+1);
55 + phone.push(firstWSheet[temp].v);
56 + sqlquery += '","' + phone[i-1];
57 + }
58 + else if(j==2){
59 + temp = "C" + (i+1);
60 + email.push(firstWSheet[temp].v);
61 + sqlquery += '","' + email[i-1];
62 + }
63 + else if(j==3){
64 + temp = "D" + (i+1);
65 + added_date.push(firstWSheet[temp].v);
66 + sqlquery += '","' + added_date[i-1] + '"),';
67 + }
68 + }
69 + }
70 + sqlquery = sqlquery.substring(0,sqlquery.length-1);
71 + connection.query(sqlquery, function (err, rows) {
72 + if (err) {
73 + console.log("upload contact failed");
74 + throw err;
75 + } else {
76 + console.log(rows);
77 + var filename = 'public/upload/contact.xlsx';
78 + fs.unlink(filename, function (err) {
79 + if (err) throw err;
80 + console.log('file deleted');
81 + })
82 + res.status(200).send('upload');
83 + }
84 + });
85 +});
86 +
87 +/*
88 +contact_download : 연락처 파일 다운로드 모듈
89 +input : 사용자의 연락처 다운로드 요청
90 +output : 연락처 다운로드 성공 여부 및 csv, xlsx 파일
91 +*/
92 +router.post('/contact_download', function(req, res, next) {
93 +
94 + var filename = 'public/upload/contactdownload.xlsx';
95 + fs.exists(filename, function (exists) {
96 + console.log(exists);
97 + if(exists == true)
98 + {
99 + fs.unlink(filename, function (err) {
100 + if (err) throw err;
101 + console.log('file deleted');
102 + });
103 + }
104 + });
105 +
106 + // Create a new instance of a Workbook class
107 + var wb = new xl.Workbook();
108 +
109 + // Add Worksheets to the workbook
110 + var ws = wb.addWorksheet('Sheet 1');
111 +
112 + ws.cell(1, 1)
113 + .string('name');
114 + ws.cell(1, 2)
115 + .string('phone');
116 + ws.cell(1, 3)
117 + .string('email');
118 + ws.cell(1, 4)
119 + .string('added_date');
120 +
121 + var user_id = req.query.id;
122 + var sqlquery = "SELECT * FROM contact WHERE user_id = ?";
123 + connection.query(sqlquery, [user_id], function (err, rows) {
124 + if (err) {
125 + console.log("download contact failed");
126 + throw err;
127 + } else {
128 + if(rows.length != 0)
129 + {
130 + for(var i=0;i<rows.length;i++)
131 + {
132 + ws.cell(i+2, 1).string(rows[i].name);
133 + ws.cell(i+2, 2).string(rows[i].phone);
134 + ws.cell(i+2, 3).string(rows[i].email);
135 + ws.cell(i+2, 4).string(rows[i].added_date);
136 + }
137 + }
138 + wb.write('public/upload/contactdownload.xlsx');
139 + var file = __dirname + '/public/upload/contactdownload.xlsx';
140 + // console.log(file);
141 + res.download(file);
142 + }
143 +
144 + });
145 +});
146 +
147 +/*
148 +contact_create : 연락처 생성 모듈
149 +input : 사용자의 연락처 생성 요청
150 +output : 연락처 생성 성공 여부
151 +사용자한테 연락처 정보 받아오기
152 +*/
153 +router.get('/contact_create', function(req, res, next) {
154 + //insert into contact(name) value ("daso")
155 +});
156 +
157 +/*
158 +contact_delete : 연락처 삭제 모듈
159 +input : 사용자의 연락처 삭제 요청
160 +output : 연락처 삭제 성공 여부
161 +*/
162 +router.post('/contact_delete', function(req, res, next) {
163 + // console.log("req.query",req.query);
164 + var user_id = req.query.id;
165 + var sqlquery = "DELETE FROM contact WHERE user_id = ?";
166 + connection.query(sqlquery, [user_id], function (err, rows) {
167 + if (err) {
168 + console.log("delete contact failed");
169 + throw err;
170 + } else {
171 + // console.log(rows);s
172 + res.status(200).send("delete");
173 + }
174 +
175 + });
176 +});
177 +
178 +/*
179 +contact_search : 연락처 검색 모듈
180 +input : 사용자가 이름, 전화번호, 이메일 중 하나를 검색
181 +output : 검색을 요청한 데이터에 부합하는 연락처를 찾았다면 출력
182 +*/
183 +router.post('/contact_search', function(req, res, next) {
184 + console.log("req.query",req.query);
185 + var user_id = req.query.id;
186 + var type = req.query.type;
187 + var info = "";
188 + if(type == "name")
189 + {
190 + info = req.query.name;
191 + var sqlquery = "SELECT * FROM contact WHERE user_id = ? and name = ?";
192 + }
193 + else if(type == "phone")
194 + {
195 + info = req.query.phone;
196 + var sqlquery = "SELECT * FROM contact WHERE user_id = ? and phone = ?";
197 + }
198 + else if(type == "email")
199 + {
200 + info = req.query.email;
201 + var sqlquery = "SELECT * FROM contact WHERE user_id = ? and email = ?";
202 + }
203 + console.log(sqlquery);
204 + connection.query(sqlquery, [user_id,info], function (err, rows) {
205 + if (err) {
206 + console.log("search contact failed");
207 + throw err;
208 + } else {
209 + console.log(rows);
210 + res.status(200).send({contact_list : rows});
211 + }
212 +
213 + });
214 +});
215 +
216 +/*
217 +contact_list : 연락처 출력 모듈
218 +input : 사용자의 연락처 출력 요청
219 +output : 저장된 연락처 목록 출력
220 +*/
221 +router.post('/contact_list', function(req, res, next) {
222 + console.log("req.query",req.query);
223 + var user_id = req.query.id;
224 + var sqlquery = "SELECT * FROM contact WHERE user_id = ?";
225 + connection.query(sqlquery, [user_id], function (err, rows) {
226 + if (err) {
227 + console.log("select contact failed");
228 + throw err;
229 + } else {
230 + console.log(rows);
231 + res.status(200).send({contact_list : rows});
232 + }
233 +
234 + });
235 +});
236 +
237 +
238 +module.exports = router;
...@@ -14,10 +14,9 @@ ...@@ -14,10 +14,9 @@
14 14
15 15
16 var AWS = require('aws-sdk'); 16 var AWS = require('aws-sdk');
17 -//AWS.config.update({ region: 'ap-northeast-2' }); 17 +AWS.config.update({ region: 'ap-northeast-2' });
18 18
19 -//var BUCKET_NAME = 'qkrrlqja-test'; 19 +var BUCKET_NAME = 'khuloud';
20 -var BUCKET_NAME = 'dkhuloud';
21 20
22 var s3 = new AWS.S3(); 21 var s3 = new AWS.S3();
23 var fs = require('fs'); 22 var fs = require('fs');
......