Node.js에서 연결/표현 미들웨어를 유지 관리하는 가장 깨끗한 방법
10950 단어 javascriptnode
Node.js에서 간단한 HTTP API를 위한 connect/express 미들웨어를 유지 관리하는 방법을 공유하고 싶습니다.
아래 코드 스니펫은 pomodoro.cc api source code 에서 가져왔습니다.
미들웨어 정의
아래에서 배열로 내보낸 모든 미들웨어를 포함하는 간단한 파일을 볼 수 있습니다.
이 예에서 사용 중인 미들웨어는 다음과 같습니다.
cookie-parser
쿠키를 구문 분석합니다. 세션용body-parser
JSON 본문을 처리하기 위해 cors
CORS 관련 두통 완화로깅용
morgan
the order of connect middlewares is important, as it can be seen as a pipeline of handlers, executed one by one.
이것이 예를 들어 쿠키나 요청 본문을 구문 분석하기 전에 CORS 요청을 처리해야 하는 이유입니다.
const cookieParser = require('cookie-parser')
const bodyParser = require('body-parser')
const cors = require('cors')
const morgan = require('morgan')
module.exports = [
morgan(':status\t :method\t :response-time ms\t :date[clf]\t :url\t\t'),
cors({
origin: true,
methods: ['HEAD', 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'],
allowedHeaders: ['x-now-id', 'x-now-trace', 'x-powered-by', 'Origin', 'Accept', 'Content-Type', 'Set-Cookie'],
credentials: true
}),
cookieParser(),
bodyParser.json({}),
bodyParser.urlencoded({ extended: true })
]
you can call this file
middlewares.js
to follow along with the code
미들웨어 사용
다음 코드 스니펫에서 Node.js의 베어본 연결/익스프레스 애플리케이션에서 미들웨어의 사용 예를 볼 수 있습니다.
const app = require('express')()
const middlewares = require('./middlewares')
app.use(...middlewares)
app.post('/hello', (req, res) => res.json(`hello ${req.body.name}`))
app.listen(process.env.HTTP_PORT || 3000)
console.log('listening on http://localhost:3000')
그리고 실행
node index.js
요청하다
서버가 포트
3000
에서 수신 대기하면 다음을 실행하고 curl
로 미들웨어가 작동하는 것을 볼 수 있습니다!다음과 유사한 출력이 표시됩니다.
> curl -vv -X POST -H 'Content-Type: application/json' http://localhost:3000/hello --data '{"name": "chris"}'
...
...
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Access-Control-Allow-Credentials: true
< Content-Type: application/json; charset=utf-8
< Content-Length: 13
< Vary: Origin
< ETag: W/"d-WPAgGvBxJ3QraEI06EWKezzLidE"
< Date: Tue, 28 Jan 2020 22:36:18 GMT
< Connection: keep-alive
<
"hello chris"*
헤더
Access-Control-Allow-Credentials
가 보이시나요?예를 들어 CORS 미들웨어가 들어오는 곳은 현재 CORS 요청에 대한 자격 증명을 허용하도록 구성되어 있습니다.
middlewares.js에서 볼 수 있듯이:
...
cors({
origin: true,
methods: ['HEAD', 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'],
allowedHeaders: ['x-now-id', 'x-now-trace', 'x-powered-by', 'Origin', 'Accept', 'Content-Type', 'Set-Cookie'],
credentials: true
}),
...
질문이 있거나 미들웨어를 처리하는 더 나은 방법을 찾으면 알려주세요!
Reference
이 문제에 관하여(Node.js에서 연결/표현 미들웨어를 유지 관리하는 가장 깨끗한 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/christianfei/the-cleanest-way-to-maintain-connect-express-middlewares-in-node-js-4nde텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)