category.js 7.85 KB
var express = require('express');
var router = express.Router();
var request = require('request');
require('dotenv').config();

/* GET home page. */
let SIGUN_CODE;
let user_latitude;
let user_logitude;
let sigun = [{
        sigun_name: '가평군',
        sigun_code: 41820
    },
    {
        sigun_name: '경기도',
        sigun_code: 41000
    },
    {
        sigun_name: '고양시',
        sigun_code: 41280
    },
    {
        sigun_name: '과천시',
        sigun_code: 41290
    },
    {
        sigun_name: '광명시',
        sigun_code: 41210
    },
    {
        sigun_name: '광주시',
        sigun_code: 41610
    },
    {
        sigun_name: '구리시',
        sigun_code: 41310
    },
    {
        sigun_name: '군포시',
        sigun_code: 41410
    },
    {
        sigun_name: '김포시',
        sigun_code: 41570
    },
    {
        sigun_name: '남양주시',
        sigun_code: 41360
    },
    {
        sigun_name: '동두천시',
        sigun_code: 41250
    },
    {
        sigun_name: '부천시',
        sigun_code: 41190
    },
    {
        sigun_name: '성남시',
        sigun_code: 41130
    },
    {
        sigun_name: '수원시',
        sigun_code: 41110
    },
    {
        sigun_name: '시흥시',
        sigun_code: 41390
    },
    {
        sigun_name: '안산시',
        sigun_code: 41270
    },
    {
        sigun_name: '안성시',
        sigun_code: 41550
    },
    {
        sigun_name: '안양시',
        sigun_code: 41170
    },
    {
        sigun_name: '양주시',
        sigun_code: 41630
    },
    {
        sigun_name: '양평군',
        sigun_code: 41830
    },
    {
        sigun_name: '여주시',
        sigun_code: 41670
    },
    {
        sigun_name: '연천군',
        sigun_code: 41800
    },
    {
        sigun_name: '오산시',
        sigun_code: 41370
    },
    {
        sigun_name: '용인시',
        sigun_code: 41460
    },
    {
        sigun_name: '의왕시',
        sigun_code: 41430
    },
    {
        sigun_name: '의정부시',
        sigun_code: 41150
    },
    {
        sigun_name: '이천시',
        sigun_code: 41500
    },
    {
        sigun_name: '파주시',
        sigun_code: 41480
    },
    {
        sigun_name: '평택시',
        sigun_code: 41220
    },
    {
        sigun_name: '포천시',
        sigun_code: 41650
    },
    {
        sigun_name: '하남시',
        sigun_code: 41450
    },
    {
        sigun_name: '화성시',
        sigun_code: 41590
    },
]


// 사용자가 index 페이지에서 주소를 입력하고 넘어오면 
router.post('/', function(req, res) {
    console.log(req.body);
    let userLocation = req.body.userLocation;
    console.log('사용자가 입력한 주소', userLocation);
    let KAKAO_API_KEY = process.env.KAKAO_APIKEY;
    let kakaoOptions = {
            url: 'https://dapi.kakao.com/v2/local/search/address.json',
            method: 'GET',
            headers: {
                'Authorization': `KakaoAK ${KAKAO_API_KEY}`
            },
            qs: {
                query: userLocation
            },
            encoding: 'UTF-8',
        }
        // sigun code 받는 부분
    for (var key in sigun) {
        if (userLocation.includes(sigun[key].sigun_name)) {
            console.log('hey!');
            SIGUN_CODE = sigun[key].sigun_code;
        }
        console.log(sigun[key].sigun_name);
    }
    console.log('SIGUN_CODE', SIGUN_CODE);
    request(kakaoOptions, function(err, res, body) {
        if (!err && res.statusCode == 200) {
            var result = JSON.parse(body);
            console.log('result', result);
            user_latitude = result.documents[0].address.x;
            user_logitude = result.documents[0].address.y;
            console.log('위도, 경도', user_latitude, user_logitude);
        }
    })
    res.render('category', { userLocation: req.body.userLocation });
});


router.get('/food', function(req, res) {

    // 맛집 리스트 조회
    let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY;
    let sigun_cd = SIGUN_CODE;
    let url = 'https://openapi.gg.go.kr/PlaceThatDoATasteyFoodSt';
    let qs = `?KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}&Type=json`;

    request({
        url: url + qs,
        method: 'GET'
    }, function(err, response, body) {
        if (!err && res.statusCode == 200) {
            let food_result = JSON.parse(body);
            // console.log('food_result', food_result.PlaceThatDoATasteyFoodSt[1]);
            let store_names = []
            for (let i = 0; i < food_result.PlaceThatDoATasteyFoodSt[1].row.length; i++) {
                // 상호명, 음식명, 전화번호, 도로명주소(REFINE_ROADNM_ADDR), 지번 주소(REFINE_LOTNO_ADDR)
                store_name = food_result.PlaceThatDoATasteyFoodSt[1].row[i];
                console.log('store_name', store_name);
                store_names.push(store_name);
            }
            console.log('food_result', food_result);
            console.log('store_names', store_names);
            res.render('result', { store_names: store_names });
        }
    });
});
router.get('/school', function(req, res) {
    res.send('This is school');
});
router.get('/park', function(req, res) {
    let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY;
    let sigun_cd = SIGUN_CODE;
    let cityparknum = 0;
    let url = 'https://openapi.gg.go.kr/CityPark';
    let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`;
    request({
        url: url + qs,
        method: 'GET'
    }, function(err, response, body) {
        var park_result = JSON.parse(body);
        if (park_result.CityPark[0].head[1].RESULT.CODE == 'INFO-000') {
            cityparknum = park_result.CityPark[0].head[0].list_total_count;
            console.log(cityparknum + "개의 도시공원이 존재합니다.");
            res.send(String(cityparknum) + "개의 도시공원이 존재합니다.");
        } else {
            res.send("도시공원이 없습니다.");
        }
    })
});

router.get('/shop', function(req, res) {
    let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY;
    let sigun_cd = SIGUN_CODE;
    let mallnum = 0;
    let url = 'https://openapi.gg.go.kr/MrktStoreM';
    let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`;
    request({
        url: url + qs,
        method: 'GET'
    }, function(err, response, body) {
        var shop_result = JSON.parse(body);
        if (shop_result.MrktStoreM[0].head[1].RESULT.CODE == 'INFO-000') {
            mallnum = shop_result.MrktStoreM[0].head[0].list_total_count;
            console.log(mallnum + "개의 쇼핑몰이 존재합니다.");
            res.send(String(mallnum) + "개의 쇼핑몰이 존재합니다.");
        } else {
            res.send("쇼핑몰이 없습니다.");
        }
    })
});

router.get('/gym', function(req, res) {
    let GYEONGI_API_KEY = process.env.GYEONGGI_APIKEY;
    let sigun_cd = SIGUN_CODE;
    let gymnum = 0;
    let url = 'https://openapi.gg.go.kr/PhysicaFitnessTrainingPlace';
    let qs = `?Type=json&KEY=${GYEONGI_API_KEY}&SIGUN_CD=${sigun_cd}`;
    request({
        url: url + qs,
        method: 'GET'
    }, function(err, response, body) {
        var gym_result = JSON.parse(body);
        if (gym_result.PhysicaFitnessTrainingPlace[0].head[1].RESULT.CODE == 'INFO-000') {

            gymnum = gym_result.PhysicaFitnessTrainingPlace[0].head[0].list_total_count;
            console.log(gymnum + "개의 체육관이 존재합니다.");
            res.send(String(gymnum) + "개의 체육관이 존재합니다.");
        } else {

            console.log("주변에 체육관이 없습니다.");
            res.send("주변에 체육관이 없습니다.");
        }
    })
});
router.get('/transport', function(req, res) {
    res.send(BusCnt);
});
router.get('/safe', function(req, res) {
    res.send('This is safe');
});

router.get('/culture', function(req, res) {
    res.send('This is culture');
});

module.exports = router;