클라 : 네트워크로 연결된 서버로부터 정보를 제공받는 컴퓨터
서버 : 클라이언트의 요청에 응답하는 컴퓨터나 프로그램
노드의 사용
💡 Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임.
JS 런타임 = “ 자바스크립트 실행기 “ = 서버 역할 수행 o = 서버 x
함수들의 집합
패키지들의 집합
모듈을 모아놓은 폴더, 코드의 집합
기능이 구현된 패키지
패키지를 설치 또는 버전관리
를 할 수 있다는것. 리액트도 하나의 패키지.라이브러리를 실행
할 수 있게 도와주는 것 즉, npm은 설치, 업데이트라면 npx는 원하는 패키지를 실행할 수 있도록 도와주는 툴Node Version
Managernpm보다
빠르고 효율적인 캐시 시스템 + 부가 기능 제공설치한 패키지의 버전 관리 를 위한 버전 기록용
파일
노드 프로젝트를 시작전에 폴더 내부에 무조건 package.json을 만들고 시작해야함 : yarn init
npm, yarn이 package.json을 만드는 명령어 제공
entry point
파헤치기
패키지를 설치하고, 불러와봅시다.
설치할 패키지 : express, nodemon
package.json이 있는 폴더의 콘솔에서 입력
yarn add express
yarn add -D nodemon
설치한 패키지들이 dependencies속성에 기록됨
설치한 개발용 패키지가 기록됨
실제 배포 시엔 사용되지 않고 개발 중에만 사용되는 패키지
scipts태그 안에 실행할 명령어를 넣으면
yarn 으로 파일 또는 노드 프로젝트를 실행할 수 있음
node
yarn init
yarn init -y
node 파일명
yarn add 패키지명
yarn add -D 패키지명
yarn install
node monitor, 개발을 편리성을 높여주는 모듈.
“ 변 환 “ : 고차 → 저차 js
설치 : yarn add -D @babel/core @babel/node @babel/preset-env
설정 :
//.babelrc
{
"presets": ["@babel/preset-env"]
}.
b. package.json scripts에 추가
//package.json
...
"scripts": {
"dev": "nodemon src/index.js --exec babel-node"
}
...
const 모듈/패키지명 = require("모듈/패키지");
import 모듈/패키지명 from "모듈/패키지";
module.exports 모듈/패키지;
export default 모듈/패키지;
노드 위에서 동작하는 프레임워크
yarn install
HTML 을 주고받는 프로토콜
Request : 웹 브라우저(클라이언트)를 통해 서버에 요청하는것
Response : 서버에서 웹 브라우저(클라이언트)에 응답하는 것
method | 의미 | |
---|---|---|
GET | Read | 데이터 조회 |
POST | Create | 요청 데이터 처리, 주로 데이터 등록에 사용 |
PUT | Update | 데이터 수정(전체 수정) |
DELETE | Delete | 데이터 삭제 |
PATCH | Update | 데이터 수정(부분 수정) |
const express = require("express");
const app = express();
const port = 3000;
app.get("/", (req, res) => {
res.send("Hello World!");
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
미들웨어 함수는 요청 오브젝트 (
req
), 응답 오브젝트(res
), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수입니다.
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000);
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('첫 번째 미들웨어');
}, function (req, res) {
res.send('두번째 미들웨어');
});
app.listen(3000);
그 다음의 미들웨어 함수는 일반적으로 next
라는 이름의 변수로 표시됩니다.
var express = require('express');
var app = express();
app.get('/',function(req,res)
{
res.send('Hello World!');
});
app.listen(3000);
var express = require('express');
var app = express();
app.get('/',function(req,res,next)
{
console.log("abc");
next();
});
app.listen(3000);
app.use((err, req, res, next) => {
console.error(err);
res.status(500).send(err.message);
});
클라이언트에게 요청이 오고 그 요청을 보내기 위해 응답하려는 중간에 목적에 맞게 처리를 하는, 거쳐가는 함수
미들웨어 : 요청과 응답의 중간에 위치한 함수
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000);
라우터 : 특정 주소에 들어오는 애를 처리
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000);
힌트
const movies = [
{
id: 1,
title: 'Avengers',
},
{
id: 2,
title: 'Spider-man',
},
{
id: 3,
title: 'Harry Potter',
},
];
깔끔하네요