해당 게시글은 유튜브 - 한 시간만에 Node.js 백엔드 기초 끝내기(ft.API 구축)
를 학습하며 정리한 글입니다.
게시글에 작성된 그림은 모두 업로드된 유튜브 영상에서 캡처해온 것입니다.
npm init // 터미널에 입력 후, 엔터를 눌러주면 package.json이 만들어지고 내가 설치한 라이브러리들이 정리됩니다.
ascii art 'figlet' 모듈을 node.js에서 설치하기 위해선 다음과 같이 작성하면 됩니다. npm에 작성되어 있는 예시를 따라 작성하면 됩니다.
npm install figlet
var figlet = require('figlet');
figlet('Hello World!!', function(err, data) {
if (err) {
console.log('Something went wrong...');
console.dir(err);
return;
}
console.log(data)
});
삭제를 희망한다면,
npm uninstall figlet
아래 코드를 실행하면, localhost:3000에 접속 시 hello world 화면을 만날 수 있습니다.
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World')
})
app.listen(3000)
로컬호스트는 뭘까요?
내 컴퓨터의 IP를 표기하지 않고 Localhost로 접속하면 됩니다.
app.get('/', () => {}) HTTP메소드, 라우팅, 콜백함수
예시를 보면, 1000ms가 지난 후 console.log가 실행됨
setTimeout(()=>{console.log("1초지남")}, 1000)
만약 get 부분 복사 후에 줄맞춤이 되지 않았다면 'shift+alt+f' 를 눌러 자동 줄맞춤을 해주자!
res.send 함수는 인자로 text, html, url 등 다양하게 받을 수 있습니다.
app.get('/dog', function (req, res) {
res.send('강아지')
})
app.get('/cat', function (req, res) {
res.send('고양이')
})
app.get('/ngngs', function (req, res){
res.send("<a href ='https://velog.io/@ngngs'>내 벨로그가기</a>")
})
app.get('/dog', function (req, res) {
res.send({'sound' : '멍멍'})
})
app.get('/cat', function (req, res) {
res.json({'sound' : '야옹'})
})
이미 수많은 유튜버가 존재하는데, 그 때마다 app.get('/유튜버')을 작성한다면 얼마나 많은 라인의 코드가 생겨날까요? 이를 해결하기 위해, 파라미터를 사용할 수 있습니다. 파라미터는 변수명 앞에 ':'를 붙혀줍니다.
app.get('/user/:id', (req, res) => {
const q = req.params
console.log(q)
res.json({'sound' : '으아아아'})
})
localhost:3000/user/thisismyid에 접속하게 되면 터미널에는 아래와 같이 출력됩니다.
listening port 3000
{ id: 'thisismyid' }
app.get('/user/:id', (req, res) => {
const q = req.query
console.log(q)
res.json({'userid' : q.id})
})
url창에 localhost:3000/user/ngngs?q=moon&name=jo&age=20라고 입력하면 터미널에는 아래와 같이 출력됩니다.
{ q: 'moon', name: 'jo', age: '20' }
url에 입력되는 동물에 따라 다른 동물 소리를 출력해보십다.
app.get('/sound/:name', (req, res) => {
const { name } = req.params
if(name == 'dog'){
res.json({'sound' : '멍멍'})
} else if(name == 'cat'){
res.json({'sound' : '야옹'})
} else if(name == "pig"){
res.json({'sound' : '꿀꿀'})
} else {
res.json({'sound' : '알수없음'})
}
})
npm i cors
설치가 완료되었다면, package.json으로 가서 다음과 같이 cors를 확인합니다.
"dependencies": {
"cors": "^2.8.5",
"express": "^4.18.2"
}