dckat

지도에 카페 마커 표시하기

feat, test: map.ejs 카페 테스트 데이터로 15개 지도에 띄우고 상세정보 표현
...@@ -1151,16 +1151,16 @@ ...@@ -1151,16 +1151,16 @@
1151 "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", 1151 "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
1152 "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" 1152 "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
1153 }, 1153 },
1154 - "isstream": {
1155 - "version": "0.1.2",
1156 - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1157 - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1158 - },
1159 "isarray": { 1154 "isarray": {
1160 "version": "1.0.0", 1155 "version": "1.0.0",
1161 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1156 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1162 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1157 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1163 }, 1158 },
1159 + "isstream": {
1160 + "version": "0.1.2",
1161 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1162 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1163 + },
1164 "jake": { 1164 "jake": {
1165 "version": "10.8.2", 1165 "version": "10.8.2",
1166 "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", 1166 "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
...@@ -1799,6 +1799,11 @@ ...@@ -1799,6 +1799,11 @@
1799 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 1799 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1800 "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 1800 "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
1801 }, 1801 },
1802 + "sqlstring": {
1803 + "version": "2.3.1",
1804 + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
1805 + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A="
1806 + },
1802 "sshpk": { 1807 "sshpk": {
1803 "version": "1.16.1", 1808 "version": "1.16.1",
1804 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 1809 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
...@@ -1813,335 +1818,330 @@ ...@@ -1813,335 +1818,330 @@
1813 "jsbn": "~0.1.0", 1818 "jsbn": "~0.1.0",
1814 "safer-buffer": "^2.0.2", 1819 "safer-buffer": "^2.0.2",
1815 "tweetnacl": "~0.14.0" 1820 "tweetnacl": "~0.14.0"
1821 + }
1822 + },
1823 + "statuses": {
1824 + "version": "1.4.0",
1825 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
1826 + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
1827 + },
1828 + "string-width": {
1829 + "version": "4.2.2",
1830 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
1831 + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
1832 + "requires": {
1833 + "emoji-regex": "^8.0.0",
1834 + "is-fullwidth-code-point": "^3.0.0",
1835 + "strip-ansi": "^6.0.0"
1816 }, 1836 },
1817 - "sqlstring": { 1837 + "dependencies": {
1818 - "version": "2.3.1", 1838 + "ansi-regex": {
1819 - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", 1839 + "version": "5.0.0",
1820 - "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" 1840 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
1821 - }, 1841 + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
1822 - "statuses": { 1842 + },
1823 - "version": "1.4.0", 1843 + "emoji-regex": {
1824 - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 1844 + "version": "8.0.0",
1825 - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 1845 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1826 - }, 1846 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
1827 - "string-width": {
1828 - "version": "4.2.2",
1829 - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
1830 - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
1831 - "requires": {
1832 - "emoji-regex": "^8.0.0",
1833 - "is-fullwidth-code-point": "^3.0.0",
1834 - "strip-ansi": "^6.0.0"
1835 }, 1847 },
1836 - "dependencies": { 1848 + "is-fullwidth-code-point": {
1837 - "ansi-regex": { 1849 + "version": "3.0.0",
1838 - "version": "5.0.0", 1850 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1839 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1851 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
1840 - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 1852 + },
1841 - }, 1853 + "strip-ansi": {
1842 - "emoji-regex": { 1854 + "version": "6.0.0",
1843 - "version": "8.0.0", 1855 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1844 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1856 + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1845 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 1857 + "requires": {
1846 - }, 1858 + "ansi-regex": "^5.0.0"
1847 - "is-fullwidth-code-point": {
1848 - "version": "3.0.0",
1849 - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1850 - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
1851 - },
1852 - "strip-ansi": {
1853 - "version": "6.0.0",
1854 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1855 - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1856 - "requires": {
1857 - "ansi-regex": "^5.0.0"
1858 - }
1859 } 1859 }
1860 } 1860 }
1861 + }
1862 + },
1863 + "string_decoder": {
1864 + "version": "1.1.1",
1865 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1866 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1867 + "requires": {
1868 + "safe-buffer": "~5.1.0"
1869 + }
1870 + },
1871 + "strip-ansi": {
1872 + "version": "5.2.0",
1873 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1874 + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1875 + "requires": {
1876 + "ansi-regex": "^4.1.0"
1877 + }
1878 + },
1879 + "strip-json-comments": {
1880 + "version": "2.0.1",
1881 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1882 + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
1883 + },
1884 + "supports-color": {
1885 + "version": "5.5.0",
1886 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1887 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1888 + "requires": {
1889 + "has-flag": "^3.0.0"
1890 + }
1891 + },
1892 + "term-size": {
1893 + "version": "2.2.1",
1894 + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
1895 + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
1896 + },
1897 + "to-readable-stream": {
1898 + "version": "1.0.0",
1899 + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
1900 + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
1901 + },
1902 + "to-regex-range": {
1903 + "version": "5.0.1",
1904 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1905 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1906 + "requires": {
1907 + "is-number": "^7.0.0"
1908 + }
1909 + },
1910 + "toidentifier": {
1911 + "version": "1.0.0",
1912 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1913 + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1914 + },
1915 + "touch": {
1916 + "version": "3.1.0",
1917 + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
1918 + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
1919 + "requires": {
1920 + "nopt": "~1.0.10"
1921 + }
1922 + },
1923 + "tough-cookie": {
1924 + "version": "2.5.0",
1925 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1926 + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1927 + "requires": {
1928 + "psl": "^1.1.28",
1929 + "punycode": "^2.1.1"
1930 + }
1931 + },
1932 + "tunnel-agent": {
1933 + "version": "0.6.0",
1934 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1935 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1936 + "requires": {
1937 + "safe-buffer": "^5.0.1"
1938 + }
1939 + },
1940 + "tweetnacl": {
1941 + "version": "0.14.5",
1942 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1943 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1944 + },
1945 + "type-fest": {
1946 + "version": "0.8.1",
1947 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1948 + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
1949 + },
1950 + "type-is": {
1951 + "version": "1.6.18",
1952 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1953 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1954 + "requires": {
1955 + "media-typer": "0.3.0",
1956 + "mime-types": "~2.1.24"
1957 + }
1958 + },
1959 + "typedarray-to-buffer": {
1960 + "version": "3.1.5",
1961 + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
1962 + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
1963 + "requires": {
1964 + "is-typedarray": "^1.0.0"
1965 + }
1966 + },
1967 + "uid-safe": {
1968 + "version": "2.1.5",
1969 + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
1970 + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
1971 + "requires": {
1972 + "random-bytes": "~1.0.0"
1973 + }
1974 + },
1975 + "undefsafe": {
1976 + "version": "2.0.3",
1977 + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
1978 + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
1979 + "requires": {
1980 + "debug": "^2.2.0"
1981 + }
1982 + },
1983 + "unique-string": {
1984 + "version": "2.0.0",
1985 + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
1986 + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
1987 + "requires": {
1988 + "crypto-random-string": "^2.0.0"
1989 + }
1990 + },
1991 + "universalify": {
1992 + "version": "0.1.2",
1993 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
1994 + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
1995 + },
1996 + "unpipe": {
1997 + "version": "1.0.0",
1998 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1999 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
2000 + },
2001 + "update-notifier": {
2002 + "version": "4.1.3",
2003 + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
2004 + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
2005 + "requires": {
2006 + "boxen": "^4.2.0",
2007 + "chalk": "^3.0.0",
2008 + "configstore": "^5.0.1",
2009 + "has-yarn": "^2.1.0",
2010 + "import-lazy": "^2.1.0",
2011 + "is-ci": "^2.0.0",
2012 + "is-installed-globally": "^0.3.1",
2013 + "is-npm": "^4.0.0",
2014 + "is-yarn-global": "^0.3.0",
2015 + "latest-version": "^5.0.0",
2016 + "pupa": "^2.0.1",
2017 + "semver-diff": "^3.1.1",
2018 + "xdg-basedir": "^4.0.0"
1861 }, 2019 },
1862 - "string_decoder": { 2020 + "dependencies": {
1863 - "version": "1.1.1", 2021 + "ansi-styles": {
1864 - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2022 + "version": "4.3.0",
1865 - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2023 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1866 - "requires": { 2024 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1867 - "safe-buffer": "~5.1.0" 2025 + "requires": {
1868 - } 2026 + "color-convert": "^2.0.1"
1869 - }, 2027 + }
1870 - "strip-ansi": { 2028 + },
1871 - "version": "5.2.0", 2029 + "chalk": {
1872 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2030 + "version": "3.0.0",
1873 - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2031 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
1874 - "requires": { 2032 + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
1875 - "ansi-regex": "^4.1.0" 2033 + "requires": {
1876 - } 2034 + "ansi-styles": "^4.1.0",
1877 - }, 2035 + "supports-color": "^7.1.0"
1878 - "strip-json-comments": { 2036 + }
1879 - "version": "2.0.1",
1880 - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1881 - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
1882 - },
1883 - "supports-color": {
1884 - "version": "5.5.0",
1885 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1886 - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1887 - "requires": {
1888 - "has-flag": "^3.0.0"
1889 - }
1890 - },
1891 - "term-size": {
1892 - "version": "2.2.1",
1893 - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
1894 - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
1895 - },
1896 - "to-readable-stream": {
1897 - "version": "1.0.0",
1898 - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
1899 - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
1900 - },
1901 - "to-regex-range": {
1902 - "version": "5.0.1",
1903 - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1904 - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1905 - "requires": {
1906 - "is-number": "^7.0.0"
1907 - }
1908 - },
1909 - "toidentifier": {
1910 - "version": "1.0.0",
1911 - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1912 - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
1913 - },
1914 - "touch": {
1915 - "version": "3.1.0",
1916 - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
1917 - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
1918 - "requires": {
1919 - "nopt": "~1.0.10"
1920 - }
1921 - },
1922 - "tough-cookie": {
1923 - "version": "2.5.0",
1924 - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1925 - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1926 - "requires": {
1927 - "psl": "^1.1.28",
1928 - "punycode": "^2.1.1"
1929 - }
1930 - },
1931 - "tunnel-agent": {
1932 - "version": "0.6.0",
1933 - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1934 - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1935 - "requires": {
1936 - "safe-buffer": "^5.0.1"
1937 - }
1938 - },
1939 - "tweetnacl": {
1940 - "version": "0.14.5",
1941 - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1942 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1943 - },
1944 - "type-fest": {
1945 - "version": "0.8.1",
1946 - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1947 - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
1948 - },
1949 - "type-is": {
1950 - "version": "1.6.18",
1951 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1952 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1953 - "requires": {
1954 - "media-typer": "0.3.0",
1955 - "mime-types": "~2.1.24"
1956 - }
1957 - },
1958 - "typedarray-to-buffer": {
1959 - "version": "3.1.5",
1960 - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
1961 - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
1962 - "requires": {
1963 - "is-typedarray": "^1.0.0"
1964 - }
1965 - },
1966 - "uid-safe": {
1967 - "version": "2.1.5",
1968 - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
1969 - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
1970 - "requires": {
1971 - "random-bytes": "~1.0.0"
1972 - }
1973 - },
1974 - "undefsafe": {
1975 - "version": "2.0.3",
1976 - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
1977 - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
1978 - "requires": {
1979 - "debug": "^2.2.0"
1980 - }
1981 - },
1982 - "unique-string": {
1983 - "version": "2.0.0",
1984 - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
1985 - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
1986 - "requires": {
1987 - "crypto-random-string": "^2.0.0"
1988 - }
1989 - },
1990 - "universalify": {
1991 - "version": "0.1.2",
1992 - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
1993 - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
1994 - },
1995 - "unpipe": {
1996 - "version": "1.0.0",
1997 - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1998 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1999 - },
2000 - "update-notifier": {
2001 - "version": "4.1.3",
2002 - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
2003 - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
2004 - "requires": {
2005 - "boxen": "^4.2.0",
2006 - "chalk": "^3.0.0",
2007 - "configstore": "^5.0.1",
2008 - "has-yarn": "^2.1.0",
2009 - "import-lazy": "^2.1.0",
2010 - "is-ci": "^2.0.0",
2011 - "is-installed-globally": "^0.3.1",
2012 - "is-npm": "^4.0.0",
2013 - "is-yarn-global": "^0.3.0",
2014 - "latest-version": "^5.0.0",
2015 - "pupa": "^2.0.1",
2016 - "semver-diff": "^3.1.1",
2017 - "xdg-basedir": "^4.0.0"
2018 }, 2037 },
2019 - "dependencies": { 2038 + "color-convert": {
2020 - "ansi-styles": { 2039 + "version": "2.0.1",
2021 - "version": "4.3.0", 2040 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2022 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2041 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2023 - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2042 + "requires": {
2024 - "requires": { 2043 + "color-name": "~1.1.4"
2025 - "color-convert": "^2.0.1" 2044 + }
2026 - } 2045 + },
2027 - }, 2046 + "color-name": {
2028 - "chalk": { 2047 + "version": "1.1.4",
2029 - "version": "3.0.0", 2048 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2030 - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 2049 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
2031 - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 2050 + },
2032 - "requires": { 2051 + "has-flag": {
2033 - "ansi-styles": "^4.1.0", 2052 + "version": "4.0.0",
2034 - "supports-color": "^7.1.0" 2053 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2035 - } 2054 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
2036 - }, 2055 + },
2037 - "color-convert": { 2056 + "supports-color": {
2038 - "version": "2.0.1", 2057 + "version": "7.2.0",
2039 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2058 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2040 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2059 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2041 - "requires": { 2060 + "requires": {
2042 - "color-name": "~1.1.4" 2061 + "has-flag": "^4.0.0"
2043 - }
2044 - },
2045 - "color-name": {
2046 - "version": "1.1.4",
2047 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2048 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
2049 - },
2050 - "has-flag": {
2051 - "version": "4.0.0",
2052 - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2053 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
2054 - },
2055 - "supports-color": {
2056 - "version": "7.2.0",
2057 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2058 - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2059 - "requires": {
2060 - "has-flag": "^4.0.0"
2061 - }
2062 } 2062 }
2063 } 2063 }
2064 - },
2065 - "uri-js": {
2066 - "version": "4.4.1",
2067 - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2068 - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2069 - "requires": {
2070 - "punycode": "^2.1.0"
2071 - }
2072 - },
2073 - "url-parse-lax": {
2074 - "version": "3.0.0",
2075 - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
2076 - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
2077 - "requires": {
2078 - "prepend-http": "^2.0.0"
2079 - }
2080 - },
2081 - "util-deprecate": {
2082 - "version": "1.0.2",
2083 - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2084 - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
2085 - },
2086 - "utils-merge": {
2087 - "version": "1.0.1",
2088 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2089 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
2090 - },
2091 - "uuid": {
2092 - "version": "3.4.0",
2093 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
2094 - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
2095 - },
2096 - "vary": {
2097 - "version": "1.1.2",
2098 - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2099 - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2100 - },
2101 - "verror": {
2102 - "version": "1.10.0",
2103 - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2104 - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2105 - "requires": {
2106 - "assert-plus": "^1.0.0",
2107 - "core-util-is": "1.0.2",
2108 - "extsprintf": "^1.2.0"
2109 - }
2110 - },
2111 - "widest-line": {
2112 - "version": "3.1.0",
2113 - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
2114 - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
2115 - "requires": {
2116 - "string-width": "^4.0.0"
2117 - }
2118 - },
2119 - "wrappy": {
2120 - "version": "1.0.2",
2121 - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2122 - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
2123 - },
2124 - "write-file-atomic": {
2125 - "version": "3.0.3",
2126 - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
2127 - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
2128 - "requires": {
2129 - "imurmurhash": "^0.1.4",
2130 - "is-typedarray": "^1.0.0",
2131 - "signal-exit": "^3.0.2",
2132 - "typedarray-to-buffer": "^3.1.5"
2133 - }
2134 - },
2135 - "xdg-basedir": {
2136 - "version": "4.0.0",
2137 - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
2138 - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
2139 - },
2140 - "yallist": {
2141 - "version": "4.0.0",
2142 - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2143 - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
2144 } 2064 }
2065 + },
2066 + "uri-js": {
2067 + "version": "4.4.1",
2068 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2069 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2070 + "requires": {
2071 + "punycode": "^2.1.0"
2072 + }
2073 + },
2074 + "url-parse-lax": {
2075 + "version": "3.0.0",
2076 + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
2077 + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
2078 + "requires": {
2079 + "prepend-http": "^2.0.0"
2080 + }
2081 + },
2082 + "util-deprecate": {
2083 + "version": "1.0.2",
2084 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2085 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
2086 + },
2087 + "utils-merge": {
2088 + "version": "1.0.1",
2089 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2090 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
2091 + },
2092 + "uuid": {
2093 + "version": "3.4.0",
2094 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
2095 + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
2096 + },
2097 + "vary": {
2098 + "version": "1.1.2",
2099 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2100 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2101 + },
2102 + "verror": {
2103 + "version": "1.10.0",
2104 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2105 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2106 + "requires": {
2107 + "assert-plus": "^1.0.0",
2108 + "core-util-is": "1.0.2",
2109 + "extsprintf": "^1.2.0"
2110 + }
2111 + },
2112 + "widest-line": {
2113 + "version": "3.1.0",
2114 + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
2115 + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
2116 + "requires": {
2117 + "string-width": "^4.0.0"
2118 + }
2119 + },
2120 + "wrappy": {
2121 + "version": "1.0.2",
2122 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2123 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
2124 + },
2125 + "write-file-atomic": {
2126 + "version": "3.0.3",
2127 + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
2128 + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
2129 + "requires": {
2130 + "imurmurhash": "^0.1.4",
2131 + "is-typedarray": "^1.0.0",
2132 + "signal-exit": "^3.0.2",
2133 + "typedarray-to-buffer": "^3.1.5"
2134 + }
2135 + },
2136 + "xdg-basedir": {
2137 + "version": "4.0.0",
2138 + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
2139 + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
2140 + },
2141 + "yallist": {
2142 + "version": "4.0.0",
2143 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2144 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
2145 } 2145 }
2146 } 2146 }
2147 } 2147 }
......
...@@ -2,7 +2,7 @@ var express = require("express"); ...@@ -2,7 +2,7 @@ var express = require("express");
2 var router = express.Router(); 2 var router = express.Router();
3 3
4 var request = require("request"); 4 var request = require("request");
5 -var bodyParser=require('body-parser'); 5 +var bodyParser = require("body-parser");
6 6
7 var { OAuth2Client } = require("google-auth-library"); 7 var { OAuth2Client } = require("google-auth-library");
8 var querystring = require("querystring"); 8 var querystring = require("querystring");
...@@ -10,11 +10,11 @@ var querystring = require("querystring"); ...@@ -10,11 +10,11 @@ var querystring = require("querystring");
10 var CLIENT_ID = 10 var CLIENT_ID =
11 "94679084723-s5f0686p2porp9mkakrp1p89a48n24nj.apps.googleusercontent.com"; 11 "94679084723-s5f0686p2porp9mkakrp1p89a48n24nj.apps.googleusercontent.com";
12 var client = new OAuth2Client(CLIENT_ID); 12 var client = new OAuth2Client(CLIENT_ID);
13 -var mysql=require('mysql') 13 +var mysql = require("mysql");
14 var session = require("express-session"); 14 var session = require("express-session");
15 var FileStore = require("session-file-store")(session); 15 var FileStore = require("session-file-store")(session);
16 -router.use(bodyParser.urlencoded({extended:false})); //url인코딩 x 16 +router.use(bodyParser.urlencoded({ extended: false })); //url인코딩 x
17 -router.use(bodyParser.json()); //json방식으로 파 17 +router.use(bodyParser.json()); //json방식으로 파
18 router.use( 18 router.use(
19 session({ 19 session({
20 secret: "209", // 암호화 20 secret: "209", // 암호화
...@@ -24,10 +24,10 @@ router.use( ...@@ -24,10 +24,10 @@ router.use(
24 }) 24 })
25 ); 25 );
26 var connection = mysql.createConnection({ 26 var connection = mysql.createConnection({
27 - host : 'localhost', 27 + host: "localhost",
28 - user : 'root', 28 + user: "root",
29 - password : 'g79465', 29 + password: "g79465",
30 - database : 'caferecommend' 30 + database: "caferecommend",
31 }); 31 });
32 connection.connect(); 32 connection.connect();
33 /* GET home page. */ 33 /* GET home page. */
...@@ -59,22 +59,20 @@ router.post("/index", (req, res) => { ...@@ -59,22 +59,20 @@ router.post("/index", (req, res) => {
59 }); 59 });
60 60
61 router.get("/login", checkAuthenticated, (req, res) => { 61 router.get("/login", checkAuthenticated, (req, res) => {
62 - var sql = 'SELECT * FROM USER WHERE EMAIL=?'; 62 + var sql = "SELECT * FROM USER WHERE EMAIL=?";
63 - var parameter=[req.session.user.email]; 63 + var parameter = [req.session.user.email];
64 - connection.query(sql,parameter, function(err, row){ 64 + connection.query(sql, parameter, function (err, row) {
65 - if(err){ 65 + if (err) {
66 console.log(err); 66 console.log(err);
67 - } 67 + } else {
68 - else {
69 if (row.length > 0) { 68 if (row.length > 0) {
70 - console.log("이미 가입이 되어있는 아이디") 69 + console.log("이미 가입이 되어있는 아이디");
71 req.session.user.nickname = row[0].NICKNAME; 70 req.session.user.nickname = row[0].NICKNAME;
72 req.session.user.age = row[0].AGE; 71 req.session.user.age = row[0].AGE;
73 req.session.user.gender = row[0].GENDER; 72 req.session.user.gender = row[0].GENDER;
74 - return res.render('map', {user : req.session.user}) 73 + return res.render("map", { user: req.session.user });
75 - } 74 + } else {
76 - else{ 75 + return res.render("login", { user: req.session.user, message: "none" });
77 - return res.render("login", { user: req.session.user, message:'none' });
78 } 76 }
79 } 77 }
80 }); 78 });
...@@ -84,65 +82,42 @@ router.post("/login", (req, res) => { ...@@ -84,65 +82,42 @@ router.post("/login", (req, res) => {
84 console.log(req.body.nickname); 82 console.log(req.body.nickname);
85 console.log(req.body.age); 83 console.log(req.body.age);
86 console.log(req.body.gender); 84 console.log(req.body.gender);
87 - var sql =' SELECT * FROM USER WHERE NICKNAME=?'; 85 + var sql = " SELECT * FROM USER WHERE NICKNAME=?";
88 - var parameter=[req.body.nickname]; 86 + var parameter = [req.body.nickname];
89 - connection.query(sql, parameter, function(err,row){ 87 + connection.query(sql, parameter, function (err, row) {
90 - if(err){ 88 + if (err) {
91 - console.log(err); 89 + console.log(err);
92 - }
93 - if(row.length>0){
94 - console.log('동일 닉네임있음');
95 -
96 - return res.render("login", {user : req.session.user, message: 'same nickname'});
97 - }
98 - else{
99 - req.session.user.nickname=req.body.nickname;
100 - req.session.user.age=req.body.age;
101 - req.session.user.gender=req.body.gender;
102 - var sql='INSERT INTO USER(EMAIL, NAME, NICKNAME, AGE, GENDER) VALUES(?,?,?,?,?)';
103 - var parameter=[req.session.user.email, req.session.user.name, req.session.user.nickname, req.session.user.age, req.session.user.gender];
104 - connection.query(sql, parameter, function(err, row){
105 - if(err){
106 - console.log(err);
107 - }
108 - else{
109 - console.log("새로운 user데이터 입력");
110 - }
111 - });
112 - return res.render("map", { user : req.session.user });
113 - }
114 - });
115 -
116 -});
117 -
118 -router.get("/cafe", (req, res) => {
119 - let code = "CE7";
120 - let encodedStr = querystring.escape(code);
121 -
122 - let kakaoOptions = {
123 - uri: `https://dapi.kakao.com/v2/local/search/category.json?category_group_code=${encodedStr}`,
124 - method: "GET",
125 - headers: {
126 - Authorization: "KakaoAK 2f3999076db5d32db975ab9862a64480",
127 - },
128 - encoding: "utf-8",
129 - };
130 - request(kakaoOptions, callback);
131 -
132 - function callback(error, res, body) {
133 - console.log(body);
134 - let kakaoPlaces = JSON.parse(body);
135 -
136 - for (document of kakaoPlaces.documents) {
137 - console.log(document.id);
138 - console.log(document.place_name);
139 } 90 }
140 - } 91 + if (row.length > 0) {
141 - return; 92 + console.log("동일 닉네임있음");
142 -}); 93 +
143 - 94 + return res.render("login", {
144 -router.get("/map", (req, res) => { 95 + user: req.session.user,
145 - res.render("map"); 96 + message: "same nickname",
97 + });
98 + } else {
99 + req.session.user.nickname = req.body.nickname;
100 + req.session.user.age = req.body.age;
101 + req.session.user.gender = req.body.gender;
102 + var sql =
103 + "INSERT INTO USER(EMAIL, NAME, NICKNAME, AGE, GENDER) VALUES(?,?,?,?,?)";
104 + var parameter = [
105 + req.session.user.email,
106 + req.session.user.name,
107 + req.session.user.nickname,
108 + req.session.user.age,
109 + req.session.user.gender,
110 + ];
111 + connection.query(sql, parameter, function (err, row) {
112 + if (err) {
113 + console.log(err);
114 + } else {
115 + console.log("새로운 user데이터 입력");
116 + }
117 + });
118 + return res.render("map", { user: req.session.user });
119 + }
120 + });
146 }); 121 });
147 122
148 module.exports = router; 123 module.exports = router;
...@@ -163,7 +138,7 @@ function checkAuthenticated(req, res, next) { ...@@ -163,7 +138,7 @@ function checkAuthenticated(req, res, next) {
163 verify() 138 verify()
164 .then(() => { 139 .then(() => {
165 req.session.user.name = user.name; 140 req.session.user.name = user.name;
166 - req.session.user.email=user.email; 141 + req.session.user.email = user.email;
167 next(); 142 next();
168 }) 143 })
169 .catch((err) => { 144 .catch((err) => {
...@@ -172,12 +147,13 @@ function checkAuthenticated(req, res, next) { ...@@ -172,12 +147,13 @@ function checkAuthenticated(req, res, next) {
172 } 147 }
173 148
174 router.get("/map", (req, res) => { 149 router.get("/map", (req, res) => {
175 - console.log(req.session.user); 150 + if (req.session.user) {
151 + res.render("map");
152 + }
176 res.render("map"); 153 res.render("map");
177 }); 154 });
178 155
179 - 156 +router.get("/logout", function (req, res) {
180 -router.get('/logout',function(req,res){ 157 + req.session.destroy(); //세션비우기
181 - req.session.destroy(); //세션비우기 158 + res.redirect("/");
182 - res.redirect('/');
183 }); 159 });
......
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621408098038}
...\ No newline at end of file ...\ No newline at end of file
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621338937349}
...\ No newline at end of file ...\ No newline at end of file
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621338737470}
...\ No newline at end of file ...\ No newline at end of file
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621337475210}
...\ No newline at end of file ...\ No newline at end of file
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 - <title>KaKao Map</title> 4 + <title>Cafe Map</title>
5 - <link rel="stylesheet" href="/stylesheets/style.css" /> 5 + <style>
6 + .map_wrap,
7 + .map_wrap * {
8 + margin: 0;
9 + padding: 0;
10 + font-family: "Malgun Gothic", dotum, "돋움", sans-serif;
11 + font-size: 12px;
12 + }
13 + .map_wrap {
14 + position: relative;
15 + width: 100%;
16 + height: 350px;
17 + }
18 + #category {
19 + position: absolute;
20 + top: 10px;
21 + left: 10px;
22 + border-radius: 5px;
23 + border: 1px solid #909090;
24 + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
25 + background: #fff;
26 + overflow: hidden;
27 + z-index: 2;
28 + }
29 + #category li {
30 + float: left;
31 + list-style: none;
32 + width: 50px;
33 + border-right: 1px solid #acacac;
34 + padding: 6px 0;
35 + text-align: center;
36 + cursor: pointer;
37 + }
38 + #category li.on {
39 + background: #eee;
40 + }
41 + #category li:hover {
42 + background: #ffe6e6;
43 + border-left: 1px solid #acacac;
44 + margin-left: -1px;
45 + }
46 + #category li:last-child {
47 + margin-right: 0;
48 + border-right: 0;
49 + }
50 + #category li span {
51 + display: block;
52 + margin: 0 auto 3px;
53 + width: 27px;
54 + height: 28px;
55 + }
56 + #category li .category_bg {
57 + background: url(https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/places_category.png)
58 + no-repeat;
59 + }
60 + #category li .bank {
61 + background-position: -10px 0;
62 + }
63 + #category li .mart {
64 + background-position: -10px -36px;
65 + }
66 + #category li .pharmacy {
67 + background-position: -10px -72px;
68 + }
69 + #category li .oil {
70 + background-position: -10px -108px;
71 + }
72 + #category li .cafe {
73 + background-position: -10px -144px;
74 + }
75 + #category li .store {
76 + background-position: -10px -180px;
77 + }
78 + #category li.on .category_bg {
79 + background-position-x: -46px;
80 + }
81 + .placeinfo_wrap {
82 + position: absolute;
83 + bottom: 28px;
84 + left: -150px;
85 + width: 300px;
86 + }
87 + .placeinfo {
88 + position: relative;
89 + width: 100%;
90 + border-radius: 6px;
91 + border: 1px solid #ccc;
92 + border-bottom: 2px solid #ddd;
93 + padding-bottom: 10px;
94 + background: #fff;
95 + }
96 + .placeinfo:nth-of-type(n) {
97 + border: 0;
98 + box-shadow: 0px 1px 2px #888;
99 + }
100 + .placeinfo_wrap .after {
101 + content: "";
102 + position: relative;
103 + margin-left: -12px;
104 + left: 50%;
105 + width: 22px;
106 + height: 12px;
107 + background: url("https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/vertex_white.png");
108 + }
109 + .placeinfo a,
110 + .placeinfo a:hover,
111 + .placeinfo a:active {
112 + color: #fff;
113 + text-decoration: none;
114 + }
115 + .placeinfo a,
116 + .placeinfo span {
117 + display: block;
118 + text-overflow: ellipsis;
119 + overflow: hidden;
120 + white-space: nowrap;
121 + }
122 + .placeinfo span {
123 + margin: 5px 5px 0 5px;
124 + cursor: default;
125 + font-size: 13px;
126 + }
127 + .placeinfo .title {
128 + font-weight: bold;
129 + font-size: 14px;
130 + border-radius: 6px 6px 0 0;
131 + margin: -1px -1px 0 -1px;
132 + padding: 10px;
133 + color: #fff;
134 + background: #d95050;
135 + background: #d95050
136 + url(https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/arrow_white.png)
137 + no-repeat right 14px center;
138 + }
139 + .placeinfo .tel {
140 + color: #0f7833;
141 + }
142 + .placeinfo .jibun {
143 + color: #999;
144 + font-size: 11px;
145 + margin-top: 0;
146 + }
147 + </style>
6 </head> 148 </head>
7 <body> 149 <body>
8 <div id="map" style="width: 100%; height: 575px"></div> 150 <div id="map" style="width: 100%; height: 575px"></div>
9 151
10 <script 152 <script
11 type="text/javascript" 153 type="text/javascript"
12 - src="//dapi.kakao.com/v2/maps/sdk.js?appkey=68cbccbcd6f0fef0a213e62ad37393ee" 154 + src="//dapi.kakao.com/v2/maps/sdk.js?appkey=68cbccbcd6f0fef0a213e62ad37393ee&libraries=services"
13 ></script> 155 ></script>
14 <script> 156 <script>
15 var lat = ""; 157 var lat = "";
16 var lon = ""; 158 var lon = "";
17 159
160 + var placeOverlay = new kakao.maps.CustomOverlay({ zIndex: 1 });
161 + var contentNode = document.createElement("div");
162 + var markers = [];
163 + var currCategory = "CE7"; // 카테고리코드: 카페
164 + var order = 1;
165 +
18 var mapContainer = document.getElementById("map"), 166 var mapContainer = document.getElementById("map"),
19 mapOption = { 167 mapOption = {
20 center: new kakao.maps.LatLng(36.2477502, 127.078164), 168 center: new kakao.maps.LatLng(36.2477502, 127.078164),
...@@ -23,6 +171,26 @@ ...@@ -23,6 +171,26 @@
23 171
24 var map = new kakao.maps.Map(mapContainer, mapOption); 172 var map = new kakao.maps.Map(mapContainer, mapOption);
25 173
174 + var ps = new kakao.maps.services.Places(map);
175 +
176 + kakao.maps.event.addListener(map, "idle", searchPlaces);
177 +
178 + contentNode.className = "placeinfo_wrap";
179 +
180 + addEventHandle(contentNode, "mousedown", kakao.maps.event.preventMap);
181 + addEventHandle(contentNode, "touchstart", kakao.maps.event.preventMap);
182 +
183 + placeOverlay.setContent(contentNode);
184 +
185 + function addEventHandle(target, type, callback) {
186 + if (target.addEventListener) {
187 + target.addEventListener(type, callback);
188 + } else {
189 + target.attachEvent("on" + type, callback);
190 + }
191 + }
192 +
193 + placeOverlay.setContent(contentNode);
26 if (navigator.geolocation) { 194 if (navigator.geolocation) {
27 navigator.geolocation.getCurrentPosition(function (position) { 195 navigator.geolocation.getCurrentPosition(function (position) {
28 lat = position.coords.latitude; 196 lat = position.coords.latitude;
...@@ -41,6 +209,108 @@ ...@@ -41,6 +209,108 @@
41 function displayCurrentPosition(locPosition) { 209 function displayCurrentPosition(locPosition) {
42 map.setCenter(locPosition); 210 map.setCenter(locPosition);
43 } 211 }
212 +
213 + kakao.maps.event.addListener(map, "idle", searchPlaces);
214 +
215 + function searchPlaces() {
216 + if (!currCategory) {
217 + return;
218 + }
219 + placeOverlay.setMap(null);
220 +
221 + ps.categorySearch(currCategory, placesSearchCB, { usemapBounds: true });
222 + }
223 +
224 + function placesSearchCB(data, status, pagination) {
225 + if (status === kakao.maps.services.Status.OK) {
226 + displayPlaces(data);
227 + }
228 + }
229 +
230 + function displayPlaces(places) {
231 + for (var i = 0; i < places.length; i++) {
232 + var marker = addMarker(
233 + new kakao.maps.LatLng(places[i].y, places[i].x),
234 + order
235 + );
236 +
237 + (function (marker, place) {
238 + kakao.maps.event.addListener(marker, "click", function () {
239 + displayPlaceInfo(place);
240 + });
241 + })(marker, places[i]);
242 + }
243 + }
244 +
245 + function addMarker(position, order) {
246 + var imageSrc =
247 + "https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/places_category.png";
248 + var imageSize = new kakao.maps.Size(27, 30);
249 + var imgOptions = {
250 + spriteSize: new kakao.maps.Size(72, 220),
251 + spriteOrigin: new kakao.maps.Point(46, 150),
252 + offset: new kakao.maps.Point(11, 28),
253 + };
254 + var markerImage = new kakao.maps.MarkerImage(
255 + imageSrc,
256 + imageSize,
257 + imgOptions
258 + );
259 +
260 + var marker = new kakao.maps.Marker({
261 + position: position,
262 + image: markerImage,
263 + });
264 +
265 + marker.setMap(map);
266 + markers.push(marker);
267 +
268 + return marker;
269 + }
270 +
271 + function displayPlaceInfo(place) {
272 + var content =
273 + '<div class="placeinfo">' +
274 + ' <a class="title" href="' +
275 + place.place_url +
276 + '" target="_blank" title="' +
277 + place.place_name +
278 + '">' +
279 + place.place_name +
280 + "</a>";
281 +
282 + if (place.road_address_name) {
283 + content +=
284 + ' <span title="' +
285 + place.road_address_name +
286 + '">' +
287 + place.road_address_name +
288 + "</span>" +
289 + ' <span class="jibun" title="' +
290 + place.address_name +
291 + '">(지번 : ' +
292 + place.address_name +
293 + ")</span>";
294 + } else {
295 + content +=
296 + ' <span title="' +
297 + place.address_name +
298 + '">' +
299 + place.address_name +
300 + "</span>";
301 + }
302 +
303 + content +=
304 + ' <span class="tel">' +
305 + place.phone +
306 + "</span>" +
307 + "</div>" +
308 + '<div class="after"></div>';
309 +
310 + contentNode.innerHTML = content;
311 + placeOverlay.setPosition(new kakao.maps.LatLng(place.y, place.x));
312 + placeOverlay.setMap(map);
313 + }
44 </script> 314 </script>
45 </body> 315 </body>
46 </html> 316 </html>
......