NodeJS 웹서버 기본구조

devdo·2021년 12월 9일
0

NodeJS

목록 보기
1/2
post-thumbnail

Nodejs

크롬 v8 javascript 엔진을 사용하여, 자바스크립트를 해석하고 OS레벨에서 API를 제공하는 서버사이드용 자바스크립트 런타임 환경
Nodejs는 라이브러리, 프레임워크라기보단 플랫폼으로 이해해야 한다.

http서버가 내장되어 있기 때문에 보통은 웹서버로 많이 사용된다.

npm

node package manager의 줄임말.

Nodejs에서는 자주 쓰이고 재사용되는 자바스크립트 코드들을 패키지(package)로 만들어서 사용할 수 있다. 그런 패키지를 모아놓은 저장소가 npm으로,
패키지 관리자라고 불린다.


Express 프레임워크

Nodejs에서 가장 유명한 프레임워크중에 하나로,
웹서버 코드양도 줄어주고 유지보수가 쉽도록 만들어준다.


express 모듈을 이용해서 만든 NodeJS 웹서버 기본골자

const express = require('express'); 
const app = express(); 

app.get('/', (req, res) => { 
    res.send('Hello World!'); 
}); 

app.listen(8080, () => { 
    console.log('Express App on port 8080!'); 
});

또 한가지,

express의 장점
라우팅이 편리함. REST API로서 처리할 수 있다는 것!


미들웨어

그리고 NodeJS를 더 간편하게 하는 것은 익스프레스가 있고 그안에는
미들웨어(middleware)가 있기 때문이다.

미들웨어는 app.use()와 함께 사용된다.

app.get() 나 app.post() 도 사실은 미들웨어로 불러온 것이다. Router라는 모듈을 app.use(Router)로 불러내고 사용한 것이다. 하지만 이미 내장된 모듈이라 생략해서 쓰는 것이다.

어떤 모듈(module)을 불러올 때마 미들웨어 app.use()가 사용된다는 것을 잊지말아야 한다.

app.use에 매개변수는 req, res, next가 있다.
미들웨어는 위에서부터 아래로 순서대로 실행되면서 요청과 응답 사이에 특별한 기능을 추가할 수 있다. next는 다음 미들웨어로 넘어가는 함수이다. next는 실행하지 않으면 다음 미들웨어가 실행되지 않는다.

const express = require('express');
const app = express();

//직접 미들웨어를 만들어보자
app.use((req,res,next)=>{
	req.user={
		id:"1234",
	};
	next();
//이러면 다음 get처리로 넘어갈수있게됨
});

app.get("/",(req,res)=>{
	console.log(req.user); //요청이 들어왔을때 req.user 아이디를 1234로 해줬고,
//get처리를 할때 req.user을 출력할수 있도록 설정함
	res.sendFile(__dirname+"/index.html");
});
//get메소드가 들어오면 index.html을 보낼수 있게 됨

app.get("/about",(req,res)=>{
	res.sendFile(__dirname + "/about.html");
})

app.listen(3000,(err)=>{
	if(err) return console.log(err);
	console.log("The server is listening on port 3000");
});

NodeJs 소감

스프링부트만 사용하고 있다가 서버사이트 프로젝트로 NodeJs로 사용해보니 생각보다 편하게 할 수 있었다. 다음에는 스프링부트 -> NodeJS로 저변을 넓혀보는 것보다 괜찮을 것 같다!

profile
배운 것을 기록합니다.

0개의 댓글