root / HServer / 00.Server / 00.Program / app.js @ 135
이력 | 보기 | 이력해설 | 다운로드 (3.91 KB)
1 | 39 | HKM | 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 |