익스프레스 미들웨어 작성
5761 단어 programmingjavascriptwebdevnode
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
미들웨어 함수는 요청 및 응답 객체에 접근할 수 있는 함수이며, 다음 미들웨어를 호출하기 위한 next 함수입니다.
이 기사에서는 Express 미들웨어의 기능과 작성 방법을 살펴보겠습니다.
미들웨어의 특징
미들웨어 함수는 모든 코드를 실행하고, 요청 및 응답 객체를 변경하고, 요청-응답 주기를 종료하고, 스택의 다음 미들웨어를 호출할 수 있습니다.
미들웨어는 다음 코드와 유사할 수 있습니다.
app.get('/', (req, res, next) => {
next();
});
위의 코드는 미들웨어가 호출될 요청 메소드를 가지고 있는데, 이는 get
의 app.get
입니다.
그런 다음 경로 경로인 '/'
가 있습니다.
마지막으로 우리가 전달하는 미들웨어 함수는 각각 처음 2개의 매개변수로 요청 및 응답 객체를 가지며 다음 미들웨어를 실행하기 위해 호출하는 next
함수를 갖습니다.
예시
예를 들어 /
경로에 대한 요청을 할 때 일부 출력을 기록하는 미들웨어를 작성할 수 있습니다.
우리는 이것을 다음과 같이 쓸 수 있습니다:
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.get('/', (req, res, next) => {
console.log('middleware called');
next();
});
app.get('/', (req, res) => {
res.send();
})
app.listen(3000, () => console.log('server started'));
next
는 /
경로에 대한 경로 처리기를 호출합니다.
middleware called
출력과 빈 응답에서 console.log
를 얻어야 합니다.
모든 경로에 대한 미들웨어를 로드하려면 app.use
대신 app.METHOD
를 사용할 수 있습니다. 여기서 METHOD
는 소문자입니다.
예를 들어 다음과 같이 앱 차원의 미들웨어를 작성할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
console.log('middleware called');
next();
});
app.get('/', (req, res) => {
res.send();
})
app.listen(3000, () => console.log('server started'));
우리는 이전과 같은 것을 얻어야 하지만 다음과 같은 경우:
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
console.log('middleware called');
next();
});
app.get('/', (req, res) => {
res.send();
})
app.post('/foo', (req, res) => {
res.send('foo');
})
app.listen(3000, () => console.log('server started'));
middleware called
에 GET 요청을 하고 /
에 POST 요청을 하면 /foo
를 얻습니다.
요청 및 응답 개체 수정
새 속성을 첨부하고 요청 및 응답 개체에 대한 값을 설정할 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
req.requestTime = Date.now();
next();
});
app.get('/', (req, res) => {
res.json(req.requestTime);
})
app.post('/foo', (req, res) => {
res.json(req.requestTime);
})
app.listen(3000, () => console.log('server started'));
그런 다음 /
에 GET 요청을 하고 /foo
에 POST 요청을 할 때 요청이 이루어진 타임스탬프를 얻습니다.
마찬가지로 응답 객체와 유사한 작업을 수행할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
res.responseTime = Date.now();
next();
});
app.get('/', (req, res) => {
res.json(res.responseTime);
})
app.post('/foo', (req, res) => {
res.json(res.responseTime);
})
app.listen(3000, () => console.log('server started'));
또한 /
에 GET 요청을 하고 /foo
에 POST 요청을 할 때 응답이 만들어진 타임스탬프를 얻을 것입니다.
구성 가능한 미들웨어
선택적 매개변수가 있는 함수를 만들고 미들웨어 함수를 반환하여 구성 가능한 미들웨어 기능을 만들 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
const configurableMiddleware = (options) => {
return (req, res, next) => {
req.options = options;
next();
}
}
app.use(configurableMiddleware({ date: new Date(), foo: 'bar' }));
app.get('/', (req, res) => {
res.json(req.options);
})
app.listen(3000, () => console.log('server started'));
configurableMiddleware
함수는 옵션 객체를 매개변수로 취한 다음 req.options
속성이 options
매개변수로 설정된 미들웨어 함수를 반환합니다.
그런 다음 /
경로에 요청하면 다음을 얻습니다.
{"date":"2019-12-23T22:37:04.927Z","foo":"bar"}
응답으로.
결론
경로 처리기 또는 다른 미들웨어가 실행되기 전에 Express 미들웨어 기능을 사용하여 코드를 실행할 수 있습니다.
미들웨어 함수를 생성하려면 처음 2개의 매개변수로 요청 및 응답 객체를 사용하고 세 번째 매개변수로 다음 함수를 사용하여 함수를 생성하면 됩니다.
새 속성을 추가하고 값을 설정하여 요청 및 응답 개체를 수정할 수 있습니다.
그런 다음 next
를 호출하여 다음 미들웨어 또는 경로 처리기를 호출합니다.
options 매개변수를 사용하고 미들웨어 함수를 반환하는 함수를 만들어 구성 가능한 미들웨어를 만들 수 있습니다.
Reference
이 문제에 관하여(익스프레스 미들웨어 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aumayeung/writing-express-middleware-5c2j
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
app.get('/', (req, res, next) => {
next();
});
예를 들어
/
경로에 대한 요청을 할 때 일부 출력을 기록하는 미들웨어를 작성할 수 있습니다.우리는 이것을 다음과 같이 쓸 수 있습니다:
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.get('/', (req, res, next) => {
console.log('middleware called');
next();
});
app.get('/', (req, res) => {
res.send();
})
app.listen(3000, () => console.log('server started'));
next
는 /
경로에 대한 경로 처리기를 호출합니다.middleware called
출력과 빈 응답에서 console.log
를 얻어야 합니다.모든 경로에 대한 미들웨어를 로드하려면
app.use
대신 app.METHOD
를 사용할 수 있습니다. 여기서 METHOD
는 소문자입니다.예를 들어 다음과 같이 앱 차원의 미들웨어를 작성할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
console.log('middleware called');
next();
});
app.get('/', (req, res) => {
res.send();
})
app.listen(3000, () => console.log('server started'));
우리는 이전과 같은 것을 얻어야 하지만 다음과 같은 경우:
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
console.log('middleware called');
next();
});
app.get('/', (req, res) => {
res.send();
})
app.post('/foo', (req, res) => {
res.send('foo');
})
app.listen(3000, () => console.log('server started'));
middleware called
에 GET 요청을 하고 /
에 POST 요청을 하면 /foo
를 얻습니다.요청 및 응답 개체 수정
새 속성을 첨부하고 요청 및 응답 개체에 대한 값을 설정할 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
req.requestTime = Date.now();
next();
});
app.get('/', (req, res) => {
res.json(req.requestTime);
})
app.post('/foo', (req, res) => {
res.json(req.requestTime);
})
app.listen(3000, () => console.log('server started'));
그런 다음 /
에 GET 요청을 하고 /foo
에 POST 요청을 할 때 요청이 이루어진 타임스탬프를 얻습니다.
마찬가지로 응답 객체와 유사한 작업을 수행할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
res.responseTime = Date.now();
next();
});
app.get('/', (req, res) => {
res.json(res.responseTime);
})
app.post('/foo', (req, res) => {
res.json(res.responseTime);
})
app.listen(3000, () => console.log('server started'));
또한 /
에 GET 요청을 하고 /foo
에 POST 요청을 할 때 응답이 만들어진 타임스탬프를 얻을 것입니다.
구성 가능한 미들웨어
선택적 매개변수가 있는 함수를 만들고 미들웨어 함수를 반환하여 구성 가능한 미들웨어 기능을 만들 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
const configurableMiddleware = (options) => {
return (req, res, next) => {
req.options = options;
next();
}
}
app.use(configurableMiddleware({ date: new Date(), foo: 'bar' }));
app.get('/', (req, res) => {
res.json(req.options);
})
app.listen(3000, () => console.log('server started'));
configurableMiddleware
함수는 옵션 객체를 매개변수로 취한 다음 req.options
속성이 options
매개변수로 설정된 미들웨어 함수를 반환합니다.
그런 다음 /
경로에 요청하면 다음을 얻습니다.
{"date":"2019-12-23T22:37:04.927Z","foo":"bar"}
응답으로.
결론
경로 처리기 또는 다른 미들웨어가 실행되기 전에 Express 미들웨어 기능을 사용하여 코드를 실행할 수 있습니다.
미들웨어 함수를 생성하려면 처음 2개의 매개변수로 요청 및 응답 객체를 사용하고 세 번째 매개변수로 다음 함수를 사용하여 함수를 생성하면 됩니다.
새 속성을 추가하고 값을 설정하여 요청 및 응답 개체를 수정할 수 있습니다.
그런 다음 next
를 호출하여 다음 미들웨어 또는 경로 처리기를 호출합니다.
options 매개변수를 사용하고 미들웨어 함수를 반환하는 함수를 만들어 구성 가능한 미들웨어를 만들 수 있습니다.
Reference
이 문제에 관하여(익스프레스 미들웨어 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aumayeung/writing-express-middleware-5c2j
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
req.requestTime = Date.now();
next();
});
app.get('/', (req, res) => {
res.json(req.requestTime);
})
app.post('/foo', (req, res) => {
res.json(req.requestTime);
})
app.listen(3000, () => console.log('server started'));
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use((req, res, next) => {
res.responseTime = Date.now();
next();
});
app.get('/', (req, res) => {
res.json(res.responseTime);
})
app.post('/foo', (req, res) => {
res.json(res.responseTime);
})
app.listen(3000, () => console.log('server started'));
선택적 매개변수가 있는 함수를 만들고 미들웨어 함수를 반환하여 구성 가능한 미들웨어 기능을 만들 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
const configurableMiddleware = (options) => {
return (req, res, next) => {
req.options = options;
next();
}
}
app.use(configurableMiddleware({ date: new Date(), foo: 'bar' }));
app.get('/', (req, res) => {
res.json(req.options);
})
app.listen(3000, () => console.log('server started'));
configurableMiddleware
함수는 옵션 객체를 매개변수로 취한 다음 req.options
속성이 options
매개변수로 설정된 미들웨어 함수를 반환합니다.그런 다음
/
경로에 요청하면 다음을 얻습니다.{"date":"2019-12-23T22:37:04.927Z","foo":"bar"}
응답으로.
결론
경로 처리기 또는 다른 미들웨어가 실행되기 전에 Express 미들웨어 기능을 사용하여 코드를 실행할 수 있습니다.
미들웨어 함수를 생성하려면 처음 2개의 매개변수로 요청 및 응답 객체를 사용하고 세 번째 매개변수로 다음 함수를 사용하여 함수를 생성하면 됩니다.
새 속성을 추가하고 값을 설정하여 요청 및 응답 개체를 수정할 수 있습니다.
그런 다음 next
를 호출하여 다음 미들웨어 또는 경로 처리기를 호출합니다.
options 매개변수를 사용하고 미들웨어 함수를 반환하는 함수를 만들어 구성 가능한 미들웨어를 만들 수 있습니다.
Reference
이 문제에 관하여(익스프레스 미들웨어 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aumayeung/writing-express-middleware-5c2j
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(익스프레스 미들웨어 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/writing-express-middleware-5c2j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)