root / HServer / 00.Server / 00.Program / app.js @ 77
이력 | 보기 | 이력해설 | 다운로드 (3.91 KB)
1 |
var express = require('express'); |
---|---|
2 |
var http = require('http'); |
3 |
var static = require('serve-static'); |
4 |
var path = require('path'); |
5 |
var bodyParser = require('body-parser'); |
6 |
var cookieParser = require('cookie-parser'); |
7 |
var expressSession = require('express-session'); |
8 |
var expressErrorHandler = require('express-error-handler'); |
9 |
var multer = require('multer'); |
10 |
var fs = require('fs'); |
11 |
var cors = require('cors'); // 다중 서버 접속 지원 |
12 |
|
13 |
var udp =require('./udp_modules/udpMulticast'); |
14 |
var dbCenter = require('./db_modules/dbCenter'); |
15 |
var mySocket = require('./socket.io_modules/mySocket'); |
16 |
|
17 |
//var user = require('./routers/user'); // 사용자 관리 라우터
|
18 |
|
19 |
var agent = require('./routers/agent'); |
20 |
var contents = require('./routers/contents'); |
21 |
|
22 |
var app = express();
|
23 |
app.set('port', process.env.PORT || 3000); |
24 |
app.use('/public', static(path.join(__dirname,'public'))); // public 폴더 오픈 |
25 |
app.use('/uploads', static(path.join(__dirname, 'uploads'))); // upload 폴더 오픈 |
26 |
app.use(bodyParser.urlencoded({ extended: true })); |
27 |
//app.use(bodyParser.urlencoded({extended:false}));
|
28 |
app.use(bodyParser.json()); |
29 |
app.use(cookieParser()); |
30 |
app.use(expressSession({ |
31 |
secret:'my key', |
32 |
resave:true, |
33 |
saveUninitialized:true |
34 |
})); |
35 |
|
36 |
app.use(cors()); // 클라이언트에서 ajax로 요청했을 때 cors(다중 서버 접속)지원
|
37 |
|
38 |
// 이 코드 아래로 부터 라우터 등록
|
39 |
var router = express.Router();
|
40 |
|
41 |
// DB Create 요청
|
42 |
router.route('/DB/Create').post(function(req, res){ |
43 |
console.log('/DB/Create : call');
|
44 |
dbCenter.createDB(req.body, function(err){
|
45 |
if( err ){
|
46 |
var resultString = err.toString();
|
47 |
console.log(resultString); |
48 |
res.send({'result':resultString});
|
49 |
res.end(); |
50 |
} else {
|
51 |
console.log('DB/Create : Success');
|
52 |
res.send({'result':resultString});
|
53 |
res.end(); |
54 |
} |
55 |
}); |
56 |
}); |
57 |
|
58 |
|
59 |
// Client 에서 udp를 받게되면 post로 쏴준다.
|
60 |
router.route('/clients/attendance').post(function(req, res){ |
61 |
//console.dir(req);
|
62 |
dbCenter.data_Set(req, function(err){
|
63 |
if(err){
|
64 |
res.json({"result":'fail'}); |
65 |
res.end(); |
66 |
} else {
|
67 |
// 페이지에 새로고침을 요청하는 명령어를 날린다.
|
68 |
io.emit('test');
|
69 |
|
70 |
res.json({"result":'success'}); |
71 |
res.end(); |
72 |
} |
73 |
}); |
74 |
}); |
75 |
|
76 |
|
77 |
|
78 |
//app.use('/dbCenter', dbCenter.default);
|
79 |
//app.use('/user', user.default); // 사용자 관리 라우터 등록
|
80 |
|
81 |
|
82 |
app.use('/agent', agent.default); |
83 |
app.use('/contents', contents.default); |
84 |
|
85 |
app.use('/',router);
|
86 |
|
87 |
|
88 |
// var errorHandler = expressErrorHandler({
|
89 |
// static: {
|
90 |
// '404':'./public/404.html'
|
91 |
// }
|
92 |
// });
|
93 |
|
94 |
// app.use(expressErrorHandler.httpError(404));
|
95 |
// app.use(errorHandler);
|
96 |
|
97 |
|
98 |
//var udpMulticast = require('./udpMulticast');
|
99 |
|
100 |
// 비동기 함수로 udp 멀티캐스트 주기적으로 전송
|
101 |
// ms 단위로 재 전송 시간 설정
|
102 |
var reSendTime = 1000; |
103 |
|
104 |
let asyncUdpSend = (massage)=> new Promise((resolve)=>{
|
105 |
setTimeout(()=>{ |
106 |
console.log(massage); |
107 |
udpMulticast.send(); |
108 |
resolve(asyncUdpSend(massage)); |
109 |
}, reSendTime) ; |
110 |
}); |
111 |
|
112 |
async function asyncMain(){ |
113 |
asyncUdpSend('upd send');
|
114 |
}; |
115 |
|
116 |
// http 웹 서버를 실행 합니다.
|
117 |
var server = http.createServer(app).listen(app.get('port'), function(){ |
118 |
console.log('웹 서버가 실행 되었습니다. (포트 : ' + app.get('port') + ')'); |
119 |
|
120 |
var url = "mongodb://localhost:27017/horizon"; |
121 |
|
122 |
dbCenter.connect(url, function(err){
|
123 |
if(err){
|
124 |
console.log("[createServer] 최초 db 연결 실패. err : " + err.toString());
|
125 |
} else{
|
126 |
console.log('[createServer] dbServer 연결 성공');
|
127 |
udp.send(); // UDP 를 쏘기 시작한다.
|
128 |
mySocket.setSocket(server); |
129 |
} |
130 |
}); |
131 |
}); |
132 |
|
133 |
|
134 |
|