프로젝트

일반

사용자정보

통계
| 개정판:

root / HServer / 00.Server / 00.Program / app.js @ 106

이력 | 보기 | 이력해설 | 다운로드 (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