-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathserver.js
72 lines (70 loc) · 2.45 KB
/
server.js
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
var express = require('express')
, app = express()
, nodeMap = require('./lib/NodeMap')
, Bounds = require('./lib/atomic/BaseTypes').Bounds
, writer = require('./lib/writer/ImgTagWriter')
, test = require('./server-test')
, fs = require('fs')
, cluster = require('cluster')
, numCPUs = require('os').cpus().length
, jade = require('jade');
//css, image등등의 static folder 셋팅 .
app.configure(function(){
//config
app.engine('jade', jade.__express);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
//middleware
app.use("/css",express.static(__dirname+"/css"));
app.use("/img",express.static(__dirname+"/img"));
app.use("/web",express.static(__dirname+"/web"));
app.use(express.favicon());
app.use(express.logger({ format: ':method :url' }));
//router옵션을 써서 request의 queryString을 가지고 데이타를 만질 수 있다.
app.use(app.router);
app.use(express.bodyParser());
});
app.get("/", function(req,res){
res.render("getMap");
});
app.get("/Map1", function(req,res){
res.render("Map1");
});
app.get(/^\/users?(?:\/(\d+)(?:\.\.(\d+))?)?/, function(req, res){
res.send(__dirname+"<BR>"+"보내신 userId는 :"+req.params+"입니다.");
nodeMap.Logger(__dirname,nodeMap.version);
});
app.get(/^\/nmap?(?:\/(\d+)(?:\/(\d+))(?:\/(\d+))?)?/,function(req,res){
res.send("보내신 z,x,y는 :"+req.params+"입니다.");
});
//http://localhost:3000/canvas/bbox/123
app.get("/canvas/imgSvc/:str",function(req,res){
var size,bbox;
var layerIds = req.params.str.split(",");
var boundsArray = layerIds.splice(layerIds.length-4);
var sizeArray = layerIds.splice(layerIds.length-2);
size ={ x :sizeArray[0], y : sizeArray[1] };
bbox = new Bounds( boundsArray[0], boundsArray[1], boundsArray[2], boundsArray[3]);
//일단 여기도 refactorng
nodeMap.setExtent( layerIds, bbox, size , function( buf ){
// res.set('Content-Type', 'application/octet-stream');
//png string 을 data *.png 파일로 저장하는 모듈.
// var data = str.replace(/^data:image\/\w+;base64,/, "");
// var buf = new Buffer(data, 'base64');
res.send( buf );
//console.log("sent");
// console.log(str.toString());
// res.send(str.toString());
});
});
//if (cluster.isMaster) {
// for (var i = 0; i < numCPUs; i++) {
// cluster.fork();
// }
//
// cluster.on('exit', function(worker, code, signal) {
// console.log('worker ' + worker.process.pid + ' died');
// });
//} else {
app.listen(parseInt(process.argv[2] || '8080'));
//}