본문 바로가기

WebApp/Node.js-express

Node.js-express -미들웨어 생산

우리가 직접 미들웨어를 생산해보자

가이드에서 writing middleware 참조하면

expressjs.com/en/guide/writing-middleware.html

 

-app.use(mylogger)인데

mylogger는 함수이다

첫번째 인자는 req, 두번째는 res 이 두가지는 객체이고

새번째는 next라는 값이다

express에서 미들웨어는 위와같은 형식을 가지고 있는 함수를

말하며

그 함수내부를 어떻게 구현하느냐에 따라서 각자의 다른 미들웨어를

만들수있다

 

-사실 우리 에는 애플리케이션에는  공통적으로 사용되는 로직이 있다

예를 들면 

fs.readdir()

이것을 미들웨어로 처리해보자

먼저

1.

app.use(function(req,res,next){

fs.readdir(err,filelist){

request.list = filelist

next();

}

});

 

fs.readdir()에 의해 {}안에 filelist들이 뽑혀있는데

이것을 request객체의 listt라는 이름을 지어 listt속성에 할당하고

넥스트를 실행하면 넥스트라는 변수에는 그다음에

호출되어야할 미들웨어가 담겨있다.

그러면 그 미들웨어를 ()로 호출해주면 실행된다

 

2.

data파일 내부의 파일목록을 불러오는 fs.readdir 아래에

console.log(request.list)를 해보면 data파일내부의 목록들이

배열의 형식으로 출력된다

미들웨어 사용 전

 

미들웨어 사용 후

 

하지만 이런 미들웨어가 필요가 없는 부분이 있는경우에도 미들웨어가 실행되기 때문에

불필요한 경우에는 사용하지 않도록 할 수 있다.

따라서

미들웨어가 필요한 부분만 요청하는방법

app.use(function(req,res,next){

fs.readdir(err, filelist){

request.list = filelist

next();

}

})

부분을

 

app.get('*' ,function(req,res,next){

fs.readdir(){

request.list = filelist

next();

}

})

로 변경

 

'*'는 모든요청을 가르키는데 대신에 get방식으로 들어오는 요청에 대해서만 처리하도록 하는 것

post방식에는 처리안됌

즉 app.post에서 console.log(request.list)해보면 undefined

 

requrire모듈 참조

 

'WebApp > Node.js-express' 카테고리의 다른 글

Node.js-express-error처리  (0) 2020.09.15
Node.js-express-정적인 파일의 서비스  (0) 2020.09.15
Node.js-express-미들웨어 실행순서  (0) 2020.09.14
Node.js-express-미들웨어사용  (0) 2020.09.11
Node.js- express  (0) 2020.09.10