본문 바로가기

Programming/Node.js36

Node.js 로 만든 웹사이트를 Heroku에 호스팅하는 방법 안녕하세요. 혀코입니다. Node.js로 만든 웹사이트를 Heroku에 호스팅하는 방법에 대해서 알아보도록 하겠습니다. Heroku 계정이 생성된 상태이고, Node가 설치된 상태에서 진행하니 참고 부탁 드립니다. Heroku: https://www.heroku.com/ Node.js: https://nodejs.org/ Heroku Dashboard에서 New 버튼을 눌러서 app을 생성합니다. 저는 futurizr 앱을 생성했습니다. 여러분들은 다른 이름을 사용 부탁 드립니다. ㅎㅎ Choose a region을 클릭하면 두 가지 옵션 United States와 Europe 중에 하나를 고를 수 있습니다. 저는 United States를 선택했으며, pipeline은 선택하지 않았습니다. 그리고 Cr.. 2022. 1. 6.
Node.js에서 Fetch 사용하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 Fetch 사용하는 방법에 대해서 알아보겠습니다. Fetch를 사용해서 JSON 포맷의 API를 핸들링해서 찾고자 하는 데이터의 값을 구할 수 있습니다. Fetch는 다음과 같이 사용할 수 있습니다. fetch('http://json-format-api-link?search=games').then((response) => { response.json().then((data) => { if(data.error) { console.log(data.error) } else { console.log(data.title) console.log(data.price) } }) }) fetch를 쓸때는 response를 then 을 사용해서 받게됩니다. 비동기적인 방식.. 2020. 1. 20.
Node.js에서 ES6 기능 Default Parameter 사용 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 ES6 기능인 Default Parameter 사용 방법에 대해서 알아보겠습니다. app.js를 다음과 같이 작성합니다. const greeter = (name) => { console.log('Hello ' + name) } greeter('Hyukho') 그리고 node app.js 명령어를 실행하면, 'Hello Hyukho'가 출력됩니다. 이번에는 greeter 함수에 다음과 같이 parameter 를 넣지않고 작성해 보겠습니다. const greeter = (name) => { console.log('Hello ' + name) } greeter() 그리고 node app.js 명령어를 실행하면, 'Hello undefined'가 출력됩니다. 함.. 2020. 1. 19.
Node.js에서 query 값을 받아서 핸들링하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 query 값을 받아서 핸들링하는 방법에 대해서 알아보겠습니다. $ mkdir query-string $ cd query-string $ touch app.js $ npm init $ npm install express query-string 폴더를 만들고, query-string 폴더 안으로 이동해서 app.js 파일을 만들고, npm 초기화해서 package.json파일을 만듭니다. 그리고 서버를 사용하기 위해 express 를 설치합니다. app.js 파일을 다음과 같이 작성합니다. const express = require('express') const app = express() app.get('', (req, res) => { res.send(.. 2020. 1. 18.
Node.js 포스트 링크 모음 안녕하세요. 혀코입니다. 오늘은 그동안 포스팅했던 Node.js 글들을 모아서 볼 수 있도록 링크 정리를 해놓도록 하겠습니다. https://smilehugo.tistory.com/entry/nodejs-npm-libraries-you-should-know Node.js의 필수적인 주요 NPM 라이브러리 모음 안녕하세요. 혀코입니다. 오늘은 Node.js의 필수적인 주요 NPM 라이브러리를 한눈에 볼 수 있도록 정리를 해볼까 합니다. nodemon https://www.npmjs.com/package/nodemon nodemon Simple monitor script for use.. smilehugo.tistory.com https://smilehugo.tistory.com/entry/nodejs-ho.. 2020. 1. 15.
Node.js에서 404 Page not found 페이지 설정하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 404 Page not found 페이지 설정하는 방법에 대해서 알아보겠습니다. express.js와 handlebar.js의 express view engine인 hbs를 설치 후 페이지 템플릿 설정이 되어있는 상태에서 시작합니다. 이전 포스트를 참고 부탁 드립니다. https://smilehugo.tistory.com/entry/nodejs-how-to-use-hbs-external-module Node.js에서 hbs 외장모듈 사용하는방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 hbs외장모듈 사용하는 방법에 대해서 알아보겠습니다. hbs 외장 모듈은 템플릿을 정의하는 handlebar.js의 express.js view engine입니다... 2020. 1. 11.
Node.js에서 hbs 외장모듈 사용하는방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 hbs외장모듈 사용하는 방법에 대해서 알아보겠습니다. hbs 외장 모듈은 템플릿을 정의하는 handlebar.js의 express.js view engine입니다. hbs를 사용해서 html의 반복되는 구성요소를 분리해서 만들어두고 필요한 곳에서 사용할 수 있게 만들 수 있습니다. hbs는 handlebar.js의 epxress.js view engine 이므로, express를 설치후에 hbs를 설치하도록 합니다. $ npm install express $ npm install hbs 프로젝트 루트 폴더에서 public 폴더를 만들고 그 안에 index.html 파일을 다음과 같이 작성합니다. Hello World Created by Hyukho ind.. 2020. 1. 10.
Node.js에서 Path 내장모듈 사용하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 Path 내장모듈 사용하는 방법에 대해서 알아보겠습니다. Path 모듈은 폴더의 경로를 지정하는데 사용됩니다. app.js를 다음과 같이 작성합니다. const path = require('path') console.log(path.join(__dirname,'../')) __dirname 은 현재 폴더위치를 나타냅니다. 그리고 ../ 는 상위폴더로 이동입니다. D:\hugo\playground\nodejs\basics 에서 node app.js 를 실행하면, 코드 실행한 폴더 [D:\hugo\playground\nodejs\basics] $ node app.js D:\hugo\playground\nodejs\ 한단계 상위폴더를 출력하는 것을 확인할 수 .. 2020. 1. 10.
Node.js에서 현재 실행중인 파일의 경로 출력하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 현재 실행중인 파일의 경로를 출력하는 방법에 대해서 알아보겠습니다. 지난번에 현재 위치한 폴더의 경로를 출력하는 방법과 매우 유사합니다. 파일의 경로는 __filename 폴더의 경로는 __dirname 으로 값을 얻을 수 있습니다. app.js를 다음과 같이 작성합니다. const currentFilename = __filename console.log(currentFilename) 변수 currentFilename 에 현재 실행중인 파일의 전체 경로를 저장하고 console.log를 통해서 해당 변수를 출력하는 코드입니다. 다음 명령어를 실행하면, $ node app.js 현재 실행중인 파일의 전체경로가 출력되는 것을 확인할 수 있습니다. 이렇게 No.. 2020. 1. 9.
Node.js에서 현재 폴더 경로 출력하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 현재 폴더 경로를 출력하는 방법에 대해서 알아보겠습니다. 프로그래밍을 하다보면 현재 폴더 경로를 출력하거나 변수로 받을 경우가 있는데요. 수동으로 일일히 타이핑하지 말고, 프로그래밍을 하는 개발자 답게 현재 파일이 실행되는 폴더 경로를 출력하는 방법에 대해서 설명을 드리도록 하겠습니다. app.js를 다음과 같이 작성합니다. const currentDirectory = __dirname console.log(currentDirectory) 그리고 다음 명령어를 통해 실행해봅니다. $ node app.js 그럼 현재 폴더 경로가 표시되는 것을 확인할 수 있습니다. 이렇게 Node.js에서 현재 폴더 경로를 출력하는 방법에 대해서 알아봤습니다. 유용하셨다면,.. 2020. 1. 9.
Node.js에서 서버 구동해서 기본폴더 지정해서 디폴트 index.html 파일 보여주는 방법 안녕하세요. 혀코입니다. 저번에 Node.js에서 서버를 구동한 다음 html 파일을 보여주는 것에 대해 알아보았는데요. 이번에는 지난번과 다른 방법인 기본폴더를 지정해서 디폴트 index.html 파일을 보여주는 것에 대해 알아보겠습니다. 지난번 실행했던 코드는 다음과 같습니다. This is index.html const express = require('express') const app = express() app.get('', (req, res) => { res.sendFile(__dirname + '/index.html') }) app.get('/about', (req, res) => { res.send('This is About Page') app.listen(3000, () => { con.. 2020. 1. 9.
Node.js에서 Express로 서버 구동하고 html 파일 보여주는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 Express로 서버 구동하고 html 파일 보여주는 방법에 대해서 알아보겠습니다. 지난번에 Node.js에서 Express로 서버 구동하고 웹페이지까지 추가하는 방법에 대해서 알아봤는데요. const express = required('express') const app = express() app.get('', (req, res) => { res.send('I am Iron Man') }) app.get('/about', (req, res) => { res.send('This is About Page') }) app.listen(3000, () => { console.log('I love you 3000') }) 위의 코드처럼 해당 페이지에 res.s.. 2020. 1. 9.
Node.js에서 Express로 서버 구동한 후 웹페이지 추가하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 Express로 서버 구동한 후 웹페이지 추가하는 방법에 대해서 알아보겠습니다. 지난번에 Express로 서버 구동하는 방법까지 알아봤습니다. const express = require("express") const app = express() app.get('', (req, res) => { res.send('I am Iron Man') }); app.listen(3000, () => { console.log('I love you 3000.') }); 그래서 메인페이지에 'I am Iron Man' 이 표시되는 것까지 확인했습니다. 이제는 추가로 페이지를 만들어 보겠습니다. const express = require("express") const app.. 2020. 1. 9.
Node.js에서 request npm 대신 https 내장모듈 사용하는 방법 안녕하세요. 혀코입니다. 오늘은 request npm 대신에 https 내장모듈을 사용하는 방법에 대해서 알아보겠습니다. request를 통해서 현재 날씨에 대한 데이터를 받는 방법은 다음과 같습니다. request npm 라이브러리를 설치 후에, app.js를 다음과 같이 작성하면 됩니다. const request = require('request') const url = 'weather-api-url-with-current-location' request({url, json: true}, (error, response) => { console.log(response.body.currently) }) request npm 대신에 https 내장모듈을 사용할 때에는 app.js를 다음과 같이 작성하면 됩.. 2020. 1. 9.
Node.js에서 ES6 기능인 Object destructuring 사용하는 방법 안녕하세요. 혀코입니다. Node.js에서 ES6 기능인 Object destructuring을 사용하는 방법에 대해서 알아보겠습니다. app.js를 다음과 같이 작성합니다. const product = { label: 'Avengers Shirt' price: 50 stock: 7 } const label = product.label const price = product.price console.log(label) console.log(price) 여기서, label과 price 변수에 product object의 각 key값에 해당하는 value를 할당하기 위해서 각각 product.label, product.price 이렇게 지정했는데요. ES6에서 지원하는 기능인 object destructur.. 2020. 1. 8.
Node.js에서 ES6 기능인 Object Property Shorthand 사용하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 ES6 기능인 Object Property Shorthand를 사용하는 방법에 대해서 알아보겠습니다. app.js를 다음과 같이 작성합니다. const name = 'Hyukho' const userAge = 27 const user = { name: name, age: userAge, location: 'Suwon' } console.log(user) 이렇게 작성하고 커맨드창에서 다음 명령어를 실행하면, $ node app.js 아래와 같은 결과를 출력합니다. { name: 'Hyukho', age: 27, location: 'Suwon' } 코드를 자세히 들여다 보면, const로 선언된 변수명과 object에 선언된 key 값이 같은 것을 알 수 있.. 2020. 1. 8.
Node.js에서 Callback function을 사용해서 새로운 지역의 위도와 경도를 얻는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 callback function을 사용해서 새로운 지역의 위도와 경도를 얻는 방법에 대해서 알아보겠습니다. const geocode = (address, callback) => { const url = 'https://api.mapbox.com/geocoding/v5/mapbox.places/' + address + '.json?access_token={{api-key}}' request({ url: url, json: true}, (error, response) => { if (error) { callback('Unable to connect to location services!', undefined) } else if (response.body.fe.. 2020. 1. 6.
Node.js에서 callback function을 사용하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 callback function을 사용하는 방법에 대해서 알아보겠습니다. app.js를 다음과 같이 작성합니다. setTimeout(() => { console.log('Two seconds are up') }, 2000) const names = ['Andrew', 'Jen', 'Jess'] const shortNames = names.filter((name) => { return name.length { const data = { latitude: 0, longitude: 0 } return data } const data = geocode('Philadelphia') console.log(data) 다음 코드를 실행하면, $ node app.js g.. 2020. 1. 6.
Node.js에서 Request를 사용해서 API 사용할때 에러 핸들링 하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 Request를 사용해서 API 사용할때 에러 핸들링 하는 방법에 대해서 알아보겠습니다. 에러가 나는 상황은 크게 두가지가 있습니다. 네트워크 오류 또는 해당하는 데이터가 없는 오류가 있습니다. 다음 app.js코드에서 Request를 사용해서 mapbox.com에서 제공하는 api를 사용하여 위도와 경도 좌표를 구하고 있습니다. const request = require('request') const geocodeURL = 'https://api.mapbox.com/geocoding/v5/mapbox.places/Los%20Angeles.json?access_token={{api-key}}&limit=1' request({url: geocodeURL, .. 2020. 1. 6.
Node.js에서 Request를 사용해서 도시의 위도 경도 좌표를 얻는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 request를 사용해서 도시의 위도, 경도 좌표를 얻는 방법에 대해서 알아보겠습니다. 특정 도시의 위도와 경도 좌표를 얻기 위해서 mapbox.com에서 제공하는 api를 사용하겠습니다. https://www.mapbox.com/ Mapbox An open source mapping platform for custom designed maps. Our APIs and SDKs are the building blocks to integrate location into any mobile or web app. www.mapbox.com 회원가입한 다음 로그인해서 다음 페이지로 이동한 다음 아래로 스크롤 하면 'Example request: Forward g.. 2020. 1. 6.
Node.js에서 Request를 사용해서 날씨 API를 사용하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 Request를 사용해서 날씨 API를 사용하는 방법에 대해서 알아보겠습니다. 여기서 사용할 API는 darksky에서 제공하는 날씨 정보 API를 사용해 보겠습니다. https://darksky.net/dev Dark Sky darksky.net 회원가입을 하고 로그인을 하면 api를 사용할 수 있는 권한을 얻을 수 있습니다. api는 url 형태로 제공되고 해당 url로 접속하면 json 형태의 data가 들어있습니다. App을 만들 폴더를 만들고 app.js파일을 생성하고 npm 초기화해서 package.json 파일을 생성합니다. $ mkdir weather-app $ cd weather-app $ touch app.js $ npm init -y .. 2020. 1. 6.
Node.js를 사용해서 Notes 앱 만드는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js를 사용해서 Notes 앱 만드는 방법에 대해서 알아보겠습니다. app.js를 다음과 같이 작성합니다. const yargs = require('yargs') // 사용자로부터 명령어를 받는다. const notes = require('./notes.js') // 노트 추가, 삭제, 리스트, 읽기등의 함수를 가진다. yargs.command({ // 노트를 추가할 수 있는 명령어를 정의한다. command: 'add', // 명령어 describe: 'Add a new note', //설명 builder: { // 옵션 2개 title과 body를 가진다. title: { describe: 'Note title', // 옵션 설명 demandOption: tr.. 2020. 1. 3.
Node.js에서 Arrow function 사용하는 방법 안녕하세요. 혀코 입니다. 오늘은 Node.js에서 Arrow function을 사용하는 방법에 대해서 알아보겠습니다. #1 숫자 하나를 받아서 그 숫자의 제곱을 구하는 일반적인 함수를 구현해 보겠습니다. const square = function (x) { return x * x } console.log(square(3)) 위의 일반 함수를 Arrow function으로 나타내면 다음과 같이 작성할 수 있습니다. const square = (x) => { return x * x } console.log(square(3)) 또한 아래처럼 return 키워드 없이 한줄로 작성할 수 있습니다. const square = (x) => x * x console.log(square(3)) 위와같이 작성된 코드의 .. 2020. 1. 3.
Node.js에서 JSON 데이터 추가하는 방법(readFileSync, push, writeFileSync) 안녕하세요. 혀코입니다. 오늘은 Node.js에서 JSON 데이터를 추가하는 방법에 대해서 알아보겠습니다. app.js 를 다음과 같이 작성합니다. const yargs = require('yargs') const notes = require('./notes.js') // Customize yargs version yargs.version('1.1.0') // Create add command yargs.command({ command: 'add', describe: 'Add a new note', builder: { title: { describe: 'Note title', demandOption: true, type: 'string' }, body: { describe: 'Note body', dem.. 2020. 1. 2.
Node.js에서 JSON 파일에 데이터를 저장하고 읽는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 JSON 파일에 데이터를 저장하는 방법에 대해서 알아보겠습니다. app.js 파일을 다음과 같이 작성합니다. const book = { title: 'Ego is the Enemy', author: 'Ryan Holiday' } const bookJSON = JSON.stringify(book) console.log(bookJSON) 다음 명령어를 실행해 보겠습니다. $ node app.js 결과는 다음과 같이 출력되는 것을 확인할 수 있습니다. {"title":"Ego is the Enemy","author":"Ryan Holiday"} 이번에는 author에 해당하는 값만 출력하는 방법에 대해서 알아보겠습니다. app.js 파일을 다음과 같이 작성합니.. 2020. 1. 2.
Node.js에서 yargs npm 모듈 사용하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 yargs npm 모듈을 사용하는 방법에 대해서 알아보겠습니다. $ touch app.js $ npm init $ npm install yargs app.js를 만들고 npm 초기화를 하고, yargs npm 라이브러리를 설치했습니다. yargs npm 라이브러리를 사용하기 위해서 app.js 상단에 포함시켜 줍니다. const yargs = require('yargs') console.log(process.argv) console.log(yargs.argv) 이렇게 app.js 를 업데이트 해주고, node 명령어를 실행해 줍니다. $ node app.js 그러면 다음과 같은 결과가 나타납니다. [ 'D:\\Programs\\nodejs\\node.ex.. 2019. 12. 27.
Node.js에서 추가 명령어 받아 처리하는 방법(process.argv) 안녕하세요. 혀코입니다. 오늘은 Node.js에서 추가로 명령어를 받아서 처리하는 방법에 대해서 알아보겠습니다. $ touch app.js $ npm init $ npm install chalk app.js 파일을 만들고 npm 초기화해서 package.json 파일을 생성하고 chalk npm 모듈을 설치했습니다. 먼저 app.js를 다음과 같이 작성한 상태에서 시작하겠습니다. const chalk = require('chalk') console.log(chalk.green.inverse("Green Man")) chalk npm 모듈을 사용하기 위해 제일 상단에 chalk 가 필요하다고 설정하고 Green Man 이 녹색 배경에 검은색 글자로 표시되도록 설정했습니다. 여기서 Node 명령어를 실행하면.. 2019. 12. 27.
Node.js에서 chalk npm 모듈 사용하는 방법 안녕하세요 혀코입니다. 오늘은 Node.js에서 chalk npm 모듈 사용하는 방법을 알아보겠습니다. $ touch app.js $ npm init $ npm install chalk app.js를 만들고 npm 초기화를 통해서 package.json 파일을 생성하고 chalk npm 모듈을 설치했습니다. chalk npm 모듈을 사용하기 위해서 app.js를 다음과 같이 업데이트 합니다. const chalk = require('chalk') console.log(chalk.green('Green Man')) 이렇게 하고 다음 명령어를 실행하면, $ node app.js 'Green Man'이 녹색으로 표시되는 것을 확인할 수 있습니다. 이번에는 inverse 옵션을 통해서 글자색이 아닌 배경색이 녹.. 2019. 12. 27.
Node.js에서 validator npm 모듈 사용하는 방법 (이메일 형식, URL 형식 확인) 안녕하세요. 혀코입니다. 오늘은 Node.js에서 validator npm 모듈 사용하는 방법에 대해 알아보겠습니다. $ touch app.js $ npm init $ npm install validator app.js를 만들고 npm init 커맨드를 통해서 package.json파일을 만들었습니다. 그리고 오늘 알아볼 validator npm 모듈을 설치했습니다. app.js 파일을 다음과 같이 코딩해서 이메일 형식이 올바른지 확인을 해 보겠습니다. const validator = require('validator') console.log(validator.isEmail('ironman@fakemail.com')) 이렇게 하고 다음 명령어를 실행하면 $ node app.js true를 반환합니다. 이.. 2019. 12. 27.
Node.js로 직접 모듈 만들어 사용하는 방법 안녕하세요. 혀코입니다. 오늘은 Node.js에서 직접만든 모듈을 사용하는 방법에 대해서 알아보겠습니다. 메인파일 app.js 파일을 만들고 다음과 같이 코딩합니다. const name = "Iron Man" console.log(name) 이렇게 하고 다음 명령어를 실행하면, $ node app.js 'Iron Man'이 표시가 되는 것을 확인할 수 있습니다. 동일한 폴더에 'custom-module.js'를 만들고 다음과 같이 코딩합니다. console.log("custom-module.js") 그 다음 app.js 파일도 다음과 같이 코딩합니다. require('./custom-module.js') const name = "Iron Man" console.log(name) 이렇게 하고 다음 명령어를.. 2019. 12. 27.