노드js

Steve·2023년 11월 5일
0

자바스크립트는 설치없이 가능함
자스는 브라우저에서 실행되기 때문
브라우저에 인터프리터가 있기 때문에

백엔드에서 실행하기 위해선
노드js를 설치해야 자스 실행 가능
노드.js가 설치되어 있으면 브라우저가 없어도 실행이 됨

npm
node package manager
다양한 모듈이 많음.

npm을 이용해서 package를 다운받을건데
package.json 생성

npm i figlet --save -g
--save는 default가됨.
-g 해당 프로젝트 뿐만 아니라 전체 컴퓨터에 적용됨.

package.json : 내용을 대략적으로.
package-lock.json : 내용을 상세하게 확인하기위함

express
nodejs를 이용해서 프렘임워크를 만듬

서비스 포트는 ars 내선번호.
ip는 대표번호

http :80 기본
https : 443 기본

app.listen(port, () => {
 console.log(`Example app listening on port ${port}`)
})

몇번 포트에서 리슨하고 있다.

app.get('/', (req, res) => {
 res.send('Hello World!')
})
  • http 메소드
    get- 주소창에서 데이터 전달
    post - 내부적으로 body에 데이터 전달

  • 라우팅

  • 콜백함수
    함수(끝나고 실행할 함수< 이게 콜백함수)

res.send : res(응답)에다가 보내겠다

app.get('/user/:id', (req, res) => {
	const q = req.params; // id가 params값이 된다.
	console.log('q >>', q);
	res.json({"userid":q.id})
	// res.send({"userid":q.id})
  	const t = req.query // 물음표 뒤.
	console.log('t >>', t);
})

res.json ? res.send?
비슷하다

app.get('/sound/:name', (req, res) => {
	const { name } = req.params
	
	if (name === 'dog') {
		res.json({'sound':'멍멍'});	
	} else if (name === 'cat') {
		res.json({'sound':'야옹'});			
	}
})

api 서버 완성

express?

express는 웹 및 모바일 앱을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 node.js 웹 앱 프레임워크이다.
node.js는 표준 웹서버 프레임워크로 불려질만큼 많은 곳에서 사용중임.

node.js와 express는 무슨 관계?

node.js는 크롬의 v8엔진을 이용하여 javascript로 브라우저가 아니라 서버를 구축하고, 서버에서 javascript가 작동되도록 해주는 런타임환경이다.
express는 이런 node.js의 원칙과 방법을 이용하여 웹 앱을 만들기 위한 프레임워크.
간단하게, express란 node.js를 사용하여 쉽게 서버를 구성할수 있게 만든 클래스와 라이브러리의 집합체라고 보면됨.

왜 express를 쓰나?

express는 프레임워크이므로 웹 앱 만들기 위한 각종 라이브러리와 미들웨어 등이 내장되어 있어 개발하기 편하고, 수많은 개발자들에게 개발 규칙을 강제하여 코드 및 구조의 통일성 향상시켜줌.
이것이 프레임워크 도입의 장점이자 사용 이유.
express는 가장 많은 곳에서 보편적으로 사용되기 때문에 구글링하면 레퍼런스가 많음(react처럼)
(다른 예로는 Adonis.js, Koa, Sails.js 같은 프레임워크가 있다)
express가 가장 유명하고 레퍼런스가 많아서 사용한다 생각하면 됨.

설치

npm i --save express (요즘 --save는 디폴트라함)
dev를 붙이지 않음으로써 개발중에만 사용하는 툴뿐만 아니라 우리가 전다할 앱의 한 부분으로 통합될 것이며, 이것도 반드시 앱을 배포한뒤 실행하게 될 모든 서버와 컴퓨터에도 설치 되어야 한다는 의미.

const https = require("https");
const Server = require("socket.io");
const express = require("express");
const app = express();
const httpsServer = https.createServer(options, app);
const wsServer = Server(httpServer);
httpsServer.listen(443, () => {
  console.log("Server is running at https://3.36.61.0");
});

app.set

app.use('/book', handler)

/book/1 또는 /book/123 등 /book으로 시작하는 모든 요청에 응답한다.
그리고 모든 method에 응답한다.

app.get('/book')

'/book' 정확한 URL과 GET method에만 응답한다.

둘다 express에서 클라에게 응답을 보내는 두가지 방법 중 하나.
서로 다른 목적을 갖고 있음.

res.render

뷰 엔진을 사용하여 지정된 템플릿을 렌더링한 후 그 결과를 클라에게 전송하는데 사용.
ex) res.render('home')은 home.ejs 템플릿을 렌더링하고 그 결과를 클라에게 전송.

res.send

res.send는 단순한 텍스트, html,json등을 클라에게 직접 전송하는데 사용.
ex) res.send('안녕하세요') -->> 단순 텍스트만 클라에게 전송.

path.join

파일들을 연결시킴.

app.get("/", (_, res) => {
  res.sendFile(path.join(__dirname, "views", "home.html"));
});

'~~dirname'\views\home.html

profile
Front-Dev

0개의 댓글

관련 채용 정보