우리가 직접 미들웨어를 생산해보자
가이드에서 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
'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 |