Toggle navigation
Toggle navigation
This project
Loading...
Sign in
김건희
/
OSSW_Weather_Briefing
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Seokjin
2022-06-05 12:46:52 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
fddedd4494a194b64b1df7f5468bc3c929fbe2db
fddedd44
1 parent
d5b3afaa
[UPDATE]TommorowWeather
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
131 additions
and
75 deletions
weather_briefing/server/weather.js
weather_briefing/server/weather.js
View file @
fddedd4
...
...
@@ -2,11 +2,13 @@ var request = require('request');
let
express
=
require
(
'express'
);
let
app
=
express
();
let
bodyParser
=
require
(
'body-parser'
);
let
session
=
require
(
'express-session'
)
let
session
=
require
(
'express-session'
);
let
cors
=
require
(
'cors'
);
app
.
use
(
session
({
secret
:
'keyboard cat'
,
cookie
:
{
maxAge
:
60000
}}))
app
.
use
(
bodyParser
.
urlencoded
({
extended
:
false
}));
app
.
use
(
bodyParser
.
json
());
app
.
use
(
cors
());
//nx,ny구하기
//변수들
...
...
@@ -14,103 +16,157 @@ let curaddress;
var
url
=
'http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst'
;
var
queryParams
=
'?'
+
encodeURIComponent
(
'serviceKey'
)
+
'=3OcUyvx97Vx2YikiZ9IHyRQ6suapku7Xn8VlefQKQWrGIFOGaejhbevwagcubdHfSiQAqJwCV5lyIutw0%2BsppA%3D%3D'
;
/* Service Key*/
//오늘의 날짜 구하기
let
base
,
tommorow
;
let
today
=
new
Date
();
let
CurDay
=
today
.
getFullYear
().
toString
();
if
(
today
.
getMonth
()
<
9
){
CurDay
+=
"0"
+
(
today
.
getMonth
()
+
1
).
toString
();
}
else
{
CurDay
+=
(
today
.
getMonth
()
+
1
).
toString
();
}
if
(
today
.
getDate
()
<
10
){
base
=
CurDay
+
"0"
+
(
today
.
getDate
()
-
1
).
toString
();
tommorow
=
CurDay
+
"0"
+
(
today
.
getDate
()
+
1
).
toString
();
CurDay
+=
"0"
+
today
.
getDate
().
toString
();
}
else
{
base
=
CurDay
+
(
today
.
getDate
()
-
1
).
toString
();
tommorow
=
CurDay
+
(
today
.
getDate
()
+
1
).
toString
();
CurDay
+=
today
.
getDate
().
toString
();
}
console
.
log
(
base
);
//nx,ny구하기
const
xlsx
=
require
(
'xlsx'
)
const
excel
=
xlsx
.
readFile
(
'location.xlsx'
);
const
sheet
=
excel
.
SheetNames
[
0
];
const
first
=
excel
.
Sheets
[
sheet
];
const
jsonData
=
xlsx
.
utils
.
sheet_to_json
(
first
,{
defval
:
""
});
let
nx
,
ny
,
add
;
app
.
post
(
'/address'
,
(
req
,
res
)
=>
{
let
nx
,
ny
;
app
.
post
(
'/a
pi/a
ddress'
,
(
req
,
res
)
=>
{
let
i
=
0
;
while
(
i
<
3788
){
if
(
jsonData
[
i
].
address1
==
req
.
body
.
address1
&&
jsonData
[
i
].
address2
==
req
.
body
.
address2
&&
jsonData
[
i
].
address3
==
req
.
body
.
address3
){
nx
=
jsonData
[
i
].
nx
;
ny
=
jsonData
[
i
].
ny
;
curaddress
=
jsonData
[
i
];
queryParams
+=
'&'
+
encodeURIComponent
(
'pageNo'
)
+
'='
+
encodeURIComponent
(
'1'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'numOfRows'
)
+
'='
+
encodeURIComponent
(
'1000'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'dataType'
)
+
'='
+
encodeURIComponent
(
'JSON'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'base_date'
)
+
'='
+
encodeURIComponent
(
CurDay
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'base_time'
)
+
'='
+
encodeURIComponent
(
'0200'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'nx'
)
+
'='
+
encodeURIComponent
(
nx
);
/*nx*/
queryParams
+=
'&'
+
encodeURIComponent
(
'ny'
)
+
'='
+
encodeURIComponent
(
ny
);
/*ny*/
res
.
send
(
"좌표는 "
+
nx
+
" "
+
ny
+
"입니다."
);
add
=
req
.
body
.
address1
+
' '
+
req
.
body
.
address2
+
' '
+
req
.
body
.
address3
;
res
.
json
({
nx
,
ny
});
break
;
}
i
+=
1
;
}
});
//오늘의 날짜 구하기
let
today
=
new
Date
();
let
CurDay
=
today
.
getFullYear
().
toString
();
if
(
today
.
getMonth
()
<
9
){
CurDay
+=
"0"
+
(
today
.
getMonth
()
+
1
).
toString
();
}
else
{
CurDay
+=
(
today
.
getMonth
()
+
1
).
toString
();
}
if
(
today
.
getDate
()
<
10
){
CurDay
+=
"0"
+
today
.
getDate
().
toString
();
}
else
{
CurDay
+=
today
.
getDate
().
toString
();
}
let
a3
=
[],
a4
=
[],
a5
=
[],
a6
=
[],
a7
=
[],
a8
=
[],
a9
=
[],
a10
=
[],
a11
=
[],
a12
=
[],
a13
=
[],
a14
=
[],
a15
=
[],
a16
=
[],
a17
=
[],
a18
=
[],
a19
=
[],
a20
=
[],
a21
=
[],
a22
=
[],
a23
=
[];
//입력받기
app
.
post
(
'/mainpage'
,(
req
,
res
)
=>
{
request
({
url
:
url
+
queryParams
,
method
:
'GET'
},
function
(
error
,
response
,
body
)
{
let
ex
=
JSON
.
parse
(
body
);
let
item
=
ex
.
response
.
body
.
items
.
item
;
// console.log(items);
let
i
=
0
;
let
a
=
[];
//, a4=[], a5=[], a6=[], a7=[], a8=[], a9=[], a10=[], a11=[], a12=[], a13=[], a14=[], a15=[], a16=[], a17=[], a18=[], a19=[], a20=[], a21=[], a22=[], a23=[];
while
(
item
[
i
].
fcstDate
==
CurDay
){
if
(
item
[
i
].
category
==
'POP'
||
item
[
i
].
category
==
'TMP'
){
a
.
push
(
item
[
i
]);
}
i
+=
1
;
}
let
result
=
[];
i
=
0
;
while
(
i
<
a
.
length
){
let
str
=
CurDay
+
' '
+
add
+
'의 '
+
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
]
+
'시 기온은 '
+
a
[
i
].
fcstValue
+
'이고, 강수확률은 '
+
a
[
i
+
1
].
fcstValue
+
'이다.'
;
result
.
push
(
str
);
i
+=
2
;
}
//정보를 string으로 저장.
// while(i<a.length){
// let Json={today:CurDay,time:a[i].fcstTime[0]+a[i].fcstTime[1],temperature:a[i].fcstValue,rainPer:a[i+1].baseTime.fcstValue};
// result.push(Json);
// i+=2;
// }//정보를 Json형식으로 저장.
//return result를 해주고 싶은데 방법을 잘 모르겠음
res
.
send
(
result
);
});
//pop:강수확률 tmp:한시간 기온
app
.
post
(
'/api/weather'
,(
req
,
res
)
=>
{
const
nx
=
req
.
body
.
dotX
;
const
ny
=
req
.
body
.
dotY
;
queryParams
+=
'&'
+
encodeURIComponent
(
'pageNo'
)
+
'='
+
encodeURIComponent
(
'1'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'numOfRows'
)
+
'='
+
encodeURIComponent
(
'1000'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'dataType'
)
+
'='
+
encodeURIComponent
(
'JSON'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'base_date'
)
+
'='
+
encodeURIComponent
(
base
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'base_time'
)
+
'='
+
encodeURIComponent
(
'2300'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'nx'
)
+
'='
+
encodeURIComponent
(
nx
);
/*nx*/
queryParams
+=
'&'
+
encodeURIComponent
(
'ny'
)
+
'='
+
encodeURIComponent
(
ny
);
/*ny*/
request
({
url
:
url
+
queryParams
,
method
:
'GET'
},
function
(
error
,
response
,
body
)
{
let
ex
=
JSON
.
parse
(
body
);
let
item
=
ex
.
response
.
body
.
items
.
item
;
let
i
=
0
;
let
a
=
[];
//, a4=[], a5=[], a6=[], a7=[], a8=[], a9=[], a10=[], a11=[], a12=[], a13=[], a14=[], a15=[], a16=[], a17=[], a18=[], a19=[], a20=[], a21=[], a22=[], a23=[];
while
(
item
[
i
].
fcstDate
==
CurDay
){
if
(
item
[
i
].
category
==
'POP'
||
item
[
i
].
category
==
'TMP'
){
a
.
push
(
item
[
i
]);
}
i
+=
1
;
}
let
result
=
[];
i
=
0
;
let
Json
;
while
(
i
<
a
.
length
){
if
(
a
[
i
].
fcstValue
<=
8
){
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
0
};
}
else
if
(
a
[
i
].
fcstValue
>
8
&&
a
[
i
].
fcstValue
<=
12
){
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
1
};
}
else
if
(
a
[
i
].
fcstValue
>
12
&&
a
[
i
].
fcstValue
<=
18
){
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
2
};
}
else
if
(
a
[
i
].
fcstValue
>
18
&&
a
[
i
].
fcstValue
<=
23
){
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
3
};
}
else
{
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
4
};
};
result
.
push
(
Json
);
i
+=
2
;
}
res
.
json
(
result
);
});
//pop:강수확률 tmp:한시간 기온
});
app
.
post
(
'/api/tommorow'
,(
req
,
res
)
=>
{
const
nx
=
req
.
body
.
dotX
;
const
ny
=
req
.
body
.
dotY
;
queryParams
+=
'&'
+
encodeURIComponent
(
'pageNo'
)
+
'='
+
encodeURIComponent
(
'1'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'numOfRows'
)
+
'='
+
encodeURIComponent
(
'1000'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'dataType'
)
+
'='
+
encodeURIComponent
(
'JSON'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'base_date'
)
+
'='
+
encodeURIComponent
(
base
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'base_time'
)
+
'='
+
encodeURIComponent
(
'2300'
);
/* */
queryParams
+=
'&'
+
encodeURIComponent
(
'nx'
)
+
'='
+
encodeURIComponent
(
nx
);
/*nx*/
queryParams
+=
'&'
+
encodeURIComponent
(
'ny'
)
+
'='
+
encodeURIComponent
(
ny
);
/*ny*/
request
({
url
:
url
+
queryParams
,
method
:
'GET'
},
function
(
error
,
response
,
body
)
{
let
ex
=
JSON
.
parse
(
body
);
let
item
=
ex
.
response
.
body
.
items
.
item
;
let
i
=
0
;
let
a
=
[];
//, a4=[], a5=[], a6=[], a7=[], a8=[], a9=[], a10=[], a11=[], a12=[], a13=[], a14=[], a15=[], a16=[], a17=[], a18=[], a19=[], a20=[], a21=[], a22=[], a23=[];
while
(
item
[
i
].
fcstDate
==
tommorow
){
if
(
item
[
i
].
category
==
'POP'
||
item
[
i
].
category
==
'TMP'
){
a
.
push
(
item
[
i
]);
}
i
+=
1
;
}
let
result
=
[];
i
=
0
;
let
Json
;
while
(
i
<
a
.
length
){
if
(
a
[
i
].
fcstValue
<=
8
){
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
0
};
}
else
if
(
a
[
i
].
fcstValue
>
8
&&
a
[
i
].
fcstValue
<=
12
){
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
1
};
}
else
if
(
a
[
i
].
fcstValue
>
12
&&
a
[
i
].
fcstValue
<=
18
){
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
2
};
}
else
if
(
a
[
i
].
fcstValue
>
18
&&
a
[
i
].
fcstValue
<=
23
){
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
3
};
}
else
{
Json
=
{
today
:
CurDay
,
time
:
a
[
i
].
fcstTime
[
0
]
+
a
[
i
].
fcstTime
[
1
],
temperature
:
a
[
i
].
fcstValue
,
rainPer
:
a
[
i
+
1
].
fcstValue
,
weather
:
4
};
};
result
.
push
(
Json
);
i
+=
2
;
}
res
.
json
(
result
);
});
//pop:강수확률 tmp:한시간 기온
});
// app.post('/mainpage', (req, res) => {
// });
app
.
listen
(
4000
,
()
=>
console
.
log
(
'Server On 5000'
));
\ No newline at end of file
app
.
listen
(
4000
,
()
=>
console
.
log
(
'Server On 4000'
));
\ No newline at end of file
...
...
Please
register
or
login
to post a comment