Router 별도로 작성되어 있는 회원 기능과 채널 기능이 한 번에 모두 작동되게 만들어보자. 참고로 user-demo.js와 channel-demo.js 파일명을 각각 users.js, channels.js로 변경해 주었다. 두 모듈을 불러올 파일 app.js를 생성한다. 이 파일에서 서버를 가동할 것이다. app.js에서 모듈을 불러오려면 users.js와 channels.js에서 모듈을 내보내야 한다. 따라서 두 파일 모두 아래의 절차를 따른다. users.js와 channels.js에서 서버를 가동시키는 listen 부분을 없애준다. (app.js에서 서버를 가동하기 때문) router이라는 변수에 express의 Router 함수를 담는다. epress의 Router 함수는 라우터를 분리할 수 ..
핸들러(Handler) 요청에 의해서 실행되는 메서드를 말한다. 예시로, 아래 코드에서 get 메서드의 두 번째 파라미터인 콜백 함수가 핸들러이다. HTTP Request가 날아오면 자동으로 호출된다. app.get('/', function (req, res) { res.send('Hello World'); }) ==과 === ==은 값이 일치하는지만 확인하지만, ===은 자료형과 값 모두 일치하는지 확인한다. // 자료형은 상관 없이 값만 비교 if (1 == '1') { console.log('같다'); } else { console.log('다르다'); } // 값과 자료형 모두 비교 if (1 === '1') { console.log('같다'); } else { console.log('다르다');..
DB 아직 데이터베이스를 연동하지 않았기 때문에 Map으로 대신한다. key는 정수인 id, value는 채널명, 구독자 수, 영상 수 정보를 가지는 객체이다. 3개의 쌍을 넣어놓은 상태이다. const db = new Map(); let id = 1; const youtubers = [ { channelTitle: "십오야", sub: "593만명", videoNum: "993개" }, { channelTitle: "침착맨", sub: "227만명", videoNum: "6.6천개" }, { channelTitle: "테오", sub: "54.8만명", videoNum: "726개" } ]; youtubers.forEach(youtuber => { db.set(id++, youtuber); }) 전체 ..
JS forEach 배열과 Map 객체에서 사용할 수 있는 개선된 for문 메서드이다. Array 배열에서 요소를 하나 꺼내서 콜백 함수의 파라미터로 전달해 준다. 파라미터는 요소 값, 요소 인덱스, 배열 전체 순서이다. const testArr = [1, 2, 3, 4, 5]; testArr.forEach(function (value, idx, arr) { console.log(`value: ${value}, idx: ${idx}, arr: ${arr}`); }) Map Map의 key-value 쌍을 하나 꺼내서 콜백 함수의 파라미터로 전달해 준다. 파라미터는 value, key, Map 전체 순서이다. const testMap = new Map(); testMap.set(1, 'One'); test..
POST Method GET 메서드에서는 데이터가 URL에 적혀서 전달된다. 회원가입을 한다고 생각해 보자. 우리의 아이디, 비밀번호, 전화번호 등의 개인정보가 남들도 다 볼 수 있는 URL에 적혀있어도 될까? 그렇게 된다면 큰 문제가 발생할 것이다. 그래서 데이터를 생성하거나 등록할 때, URL에 보여서는 안 되는 데이터를 전달해 줄 때 POST 메서드를 사용한다. POST 메서드를 사용하면 전달할 데이터가 body에 숨겨져서 보내진다. const express = require('express'); const app = express(); app.listen(3000); app.post('/post-test', function (req, res) { // ... }) Postman GET 메서드를 테..
자바스크립트 비구조화 객체(Object) 좌변의 json 안에 있는 변수명과 일치하는 우변의 json 키에 대응하는 값을 좌변의 변수에 대입한다. 아래 코드에서는 우변의 값이 json이니까 좌변에 json을 열어서 title과 description이라는 변수를 만들어놓는다. 그리고 우변의 json이 가지고 있는 키 중 title과 description이 있으면 그 키의 value를 좌변의 json 안에 생성해 놨던 변수 title과 description에 대입한다. 우변의 json에 존재하지 않는 키에 대해서 좌변에 변수를 선언하면 value가 undefined로 설정된다. const obj = { title: '객체', description: '객체의 비구조화' }; const { title, desc..
Express.js http와 Connect 컴포넌트를 기반으로 하는 웹 프레임워크다. express.js를 사용하면 http 모듈로 서버를 구축하는 것보다 더 간결하게 서버를 구축할 수 있다. 설치 터미널에서 아래 명령어를 입력한다. npm i express 실습 서버를 가동하고, 로컬호스트 포트 번호 3000번으로 접속하면 Hello World가 화면에 표시되는 것을 확인할 수 있다. const express = require('express'); const app = express(); app.get('/', function (req, res) { res.send('Hello World'); }) app.listen(3000); URL 파라미터 url에 포함된 변수를 추출할 수도 있다. 저번에 예시..
HTTP Method 생성(등록) POST 조회 GET 수정 PUT(덮어쓰기), PATCH(일부 수정) 삭제 DELETE 기타 HEAD, OPTIONS, CONNECT, TRACE Node.js 자바스크립트는 원래 웹 브라우저 위에서만 실행이 가능했다. Node.js는 자바스크립트가 웹 브라우저 밖에서도 구동될 수 있도록 환경을 구축해 놓은 플랫폼이다. 특징 1. 싱글 스레드 우리는 vscode로 작업하면서 백그라운드에는 유튜브를 띄워놓을 수 있다. 이것을 멀티 프로세스라고 하며 프로세스는 현재 실행 중인 프로그램이라고 생각하면 된다. 스레드는 하나의 프로세스 안에 존재하는 흐름을 말한다. 여러 흐름이 동시에 실행되면 멀티 스레드, 하나의 흐름만 존재하면 싱글 스레드라고 한다. node.js 자체는 싱글..