Showing
3 changed files
with
80 additions
and
47 deletions
This diff could not be displayed because it is too large.
... | @@ -8,12 +8,16 @@ | ... | @@ -8,12 +8,16 @@ |
8 | "@testing-library/user-event": "^13.5.0", | 8 | "@testing-library/user-event": "^13.5.0", |
9 | "cors": "^2.8.5", | 9 | "cors": "^2.8.5", |
10 | "express": "^4.18.1", | 10 | "express": "^4.18.1", |
11 | + "express-session": "^1.17.3", | ||
11 | "http-proxy-middleware": "^2.0.6", | 12 | "http-proxy-middleware": "^2.0.6", |
13 | + "mongoose": "^6.3.3", | ||
12 | "nodemon": "^2.0.16", | 14 | "nodemon": "^2.0.16", |
13 | "react": "^18.1.0", | 15 | "react": "^18.1.0", |
14 | "react-dom": "^18.1.0", | 16 | "react-dom": "^18.1.0", |
15 | "react-scripts": "5.0.1", | 17 | "react-scripts": "5.0.1", |
16 | - "web-vitals": "^2.1.4" | 18 | + "request": "^2.88.2", |
19 | + "web-vitals": "^2.1.4", | ||
20 | + "xlsx": "^0.18.5" | ||
17 | }, | 21 | }, |
18 | "scripts": { | 22 | "scripts": { |
19 | "start": "react-scripts start", | 23 | "start": "react-scripts start", | ... | ... |
1 | var request = require('request'); | 1 | var request = require('request'); |
2 | +let express = require('express'); | ||
3 | +let app=express(); | ||
4 | +let bodyParser = require('body-parser'); | ||
5 | +let session = require('express-session') | ||
6 | + | ||
7 | +app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }})) | ||
8 | +app.use(bodyParser.urlencoded({ extended: false })); | ||
9 | +app.use(bodyParser.json()); | ||
10 | +//nx,ny구하기 | ||
11 | + | ||
12 | +//변수들 | ||
13 | +let curaddress; | ||
14 | +var url = 'http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst'; | ||
15 | +var queryParams = '?' + encodeURIComponent('serviceKey') + '=3OcUyvx97Vx2YikiZ9IHyRQ6suapku7Xn8VlefQKQWrGIFOGaejhbevwagcubdHfSiQAqJwCV5lyIutw0%2BsppA%3D%3D'; /* Service Key*/ | ||
16 | + | ||
17 | + | ||
18 | + | ||
2 | 19 | ||
3 | 20 | ||
4 | 21 | ||
5 | //nx,ny구하기 | 22 | //nx,ny구하기 |
6 | const xlsx=require('xlsx') | 23 | const xlsx=require('xlsx') |
7 | -const excel=xlsx.readFile('location(x,y).xlsx'); | 24 | +const excel=xlsx.readFile('location.xlsx'); |
8 | const sheet=excel.SheetNames[0]; | 25 | const sheet=excel.SheetNames[0]; |
9 | const first=excel.Sheets[sheet]; | 26 | const first=excel.Sheets[sheet]; |
10 | const jsonData=xlsx.utils.sheet_to_json(first,{defval:""}); | 27 | const jsonData=xlsx.utils.sheet_to_json(first,{defval:""}); |
11 | -let nx,ny; | 28 | +let nx,ny,add; |
12 | app.post('/address', (req, res) => { | 29 | app.post('/address', (req, res) => { |
13 | let i=0; | 30 | let i=0; |
14 | - while(i<3788){ | 31 | + while(i<3788){ |
15 | - if(jsonData[i].address1==req.address1 && jsonData[i].address2==req.address2 && jsonData[i].address3==req.address3){ | 32 | + if(jsonData[i].address1==req.body.address1 && jsonData[i].address2==req.body.address2 && jsonData[i].address3==req.body.address3){ |
16 | nx=jsonData[i].nx; | 33 | nx=jsonData[i].nx; |
17 | ny=jsonData[i].ny; | 34 | ny=jsonData[i].ny; |
35 | + curaddress=jsonData[i]; | ||
36 | + queryParams += '&' + encodeURIComponent('pageNo') + '=' + encodeURIComponent('1'); /* */ | ||
37 | + queryParams += '&' + encodeURIComponent('numOfRows') + '=' + encodeURIComponent('1000'); /* */ | ||
38 | + queryParams += '&' + encodeURIComponent('dataType') + '=' + encodeURIComponent('JSON'); /* */ | ||
39 | + queryParams += '&' + encodeURIComponent('base_date') + '=' + encodeURIComponent(CurDay); /* */ | ||
40 | + queryParams += '&' + encodeURIComponent('base_time') + '=' + encodeURIComponent('0200'); /* */ | ||
41 | + queryParams += '&' + encodeURIComponent('nx') + '=' + encodeURIComponent(nx); /*nx*/ | ||
42 | + queryParams += '&' + encodeURIComponent('ny') + '=' + encodeURIComponent(ny); /*ny*/ | ||
43 | + res.send("좌표는 "+nx+" "+ny+"입니다."); | ||
44 | + add=req.body.address1+' '+req.body.address2+' '+req.body.address3; | ||
18 | break; | 45 | break; |
19 | } | 46 | } |
20 | i+=1; | 47 | i+=1; |
21 | } | 48 | } |
22 | - res.send("좌표는 ",nx,ny,"입니다."); | ||
23 | }); | 49 | }); |
24 | 50 | ||
25 | 51 | ||
26 | -//jsonData.find() 여기서 server.js의 logid의 address123을 입력받아 이 것을 찾음 싶습니다. nx와 ny에 대입 | ||
27 | - | ||
28 | - | ||
29 | - | ||
30 | - | ||
31 | - | ||
32 | - | ||
33 | - | ||
34 | //오늘의 날짜 구하기 | 52 | //오늘의 날짜 구하기 |
35 | let today=new Date(); | 53 | let today=new Date(); |
36 | let CurDay=today.getFullYear().toString(); | 54 | let CurDay=today.getFullYear().toString(); |
... | @@ -49,39 +67,50 @@ else{ | ... | @@ -49,39 +67,50 @@ else{ |
49 | 67 | ||
50 | 68 | ||
51 | 69 | ||
70 | + | ||
71 | + | ||
72 | + | ||
73 | + | ||
74 | + | ||
75 | +let a3=[], a4=[], a5=[], a6=[], a7=[], a8=[], a9=[], a10=[], a11=[], a12=[], a13=[], a14=[], a15=[], a16=[], a17=[], a18=[], a19=[], a20=[], a21=[], a22=[], a23=[]; | ||
52 | //입력받기 | 76 | //입력받기 |
53 | -var url = 'http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst'; | 77 | +app.post('/mainpage',(req,res)=>{ |
54 | -var queryParams = '?' + encodeURIComponent('serviceKey') + '=3OcUyvx97Vx2YikiZ9IHyRQ6suapku7Xn8VlefQKQWrGIFOGaejhbevwagcubdHfSiQAqJwCV5lyIutw0%2BsppA%3D%3D'; /* Service Key*/ | 78 | + request({ |
55 | -queryParams += '&' + encodeURIComponent('pageNo') + '=' + encodeURIComponent('1'); /* */ | 79 | + url: url + queryParams, |
56 | -queryParams += '&' + encodeURIComponent('numOfRows') + '=' + encodeURIComponent('1000'); /* */ | 80 | + method: 'GET' |
57 | -queryParams += '&' + encodeURIComponent('dataType') + '=' + encodeURIComponent('JSON'); /* */ | 81 | + }, function (error, response, body) { |
58 | -queryParams += '&' + encodeURIComponent('base_date') + '=' + encodeURIComponent(CurDay); /* */ | 82 | + let ex=JSON.parse(body); |
59 | -queryParams += '&' + encodeURIComponent('base_time') + '=' + encodeURIComponent('0200'); /* */ | 83 | + let item=ex.response.body.items.item; |
60 | -queryParams += '&' + encodeURIComponent('nx') + '=' + encodeURIComponent(nx.toString()); /*nx*/ | 84 | + // console.log(items); |
61 | -queryParams += '&' + encodeURIComponent('ny') + '=' + encodeURIComponent(ny.toString()); /*ny*/ | 85 | + let i=0; |
62 | - | 86 | + let a=[];//, a4=[], a5=[], a6=[], a7=[], a8=[], a9=[], a10=[], a11=[], a12=[], a13=[], a14=[], a15=[], a16=[], a17=[], a18=[], a19=[], a20=[], a21=[], a22=[], a23=[]; |
63 | -request({ | 87 | + while(item[i].fcstDate==CurDay){ |
64 | - url: url + queryParams, | 88 | + if(item[i].category=='POP' || item[i].category=='TMP'){ |
65 | - method: 'GET' | 89 | + a.push(item[i]); |
66 | -}, function (error, response, body) { | 90 | + } |
67 | - // console.log('Status', response.statusCode); | 91 | + i+=1; |
68 | - // console.log('Headers', JSON.stringify(response.headers)); | 92 | + } |
69 | - // console.log('Reponse received', body); | 93 | + let result=[]; |
70 | - let temp=JSON.parse(body); | 94 | + i=0; |
71 | - // let tmp=temp.map((list)=> ({ | 95 | + while(i<a.length){ |
72 | - // fcstTime:list.fcstTime, | 96 | + let str=CurDay+' '+add+'의 '+a[i].fcstTime[0]+a[i].fcstTime[1]+'시 기온은 '+a[i].fcstValue+'이고, 강수확률은 '+a[i+1].fcstValue+'이다.'; |
73 | - // category:list.category, | 97 | + result.push(str); |
74 | - // fcstValue:list.fcstValue | 98 | + i+=2; |
75 | - // })) ; | 99 | + }//정보를 string으로 저장. |
76 | - let temp2=temp.response.body.items.item.map((list)=>({ | 100 | + // while(i<a.length){ |
77 | - baseDate:list.baseDate, | 101 | + // let Json={today:CurDay,time:a[i].fcstTime[0]+a[i].fcstTime[1],temperature:a[i].fcstValue,rainPer:a[i+1].baseTime.fcstValue}; |
78 | - category:list.category, | 102 | + // result.push(Json); |
79 | - fcstDate:list.fcstDate, | 103 | + // i+=2; |
80 | - fcstTime:list.fcstTime, | 104 | + // }//정보를 Json형식으로 저장. |
81 | - fcstValue:list.fcstValue | 105 | + //return result를 해주고 싶은데 방법을 잘 모르겠음 |
82 | - })); | 106 | + res.send(result); |
83 | - console.log(temp2); | 107 | + });//pop:강수확률 tmp:한시간 기온 |
84 | }); | 108 | }); |
85 | -app.post('/mainpage', (req, res) => { | 109 | + |
110 | + | ||
111 | + | ||
112 | +// app.post('/mainpage', (req, res) => { | ||
86 | 113 | ||
87 | -}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
114 | +// }); | ||
115 | + | ||
116 | +app.listen(4000, () => console.log('Server On 5000')); | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment