이 간단한 방법으로 모든 Express 경로에 수동으로 '/api'를 추가하지 마십시오.

7917 단어 javascriptexpressnode
coreycleary.me에 원래 게시되었습니다. 이것은 내 콘텐츠 블로그의 교차 게시물입니다. 저는 매주 또는 2주에 한 번씩 새로운 콘텐츠를 게시합니다. 내 기사를 받은 편지함으로 직접 받고 싶다면 할 수 있습니다sign up to my newsletter! 또한 정기적으로 치트 시트, 다른 개발자의 훌륭한 자습서 링크 및 기타 공짜를 보냅니다!

각 Express 경로의 시작 부분에 항상 수동으로 '/api'를 추가해야 해서 좌절한 적이 있습니까? 일반적으로 이것이 두 가지 형태로 나타납니다.

형식 1:app.js 파일:

app.use('/api/users', require('./routes/users'))
app.use('/api/posts', require('./routes/posts'))
app.use('/api/comments', require('./routes/comments'))
app.use('/api/subscriptions', require('./routes/subscriptions'))

형식 2:
경로 파일에서:

router.post('/api/users', users.createUser)
router.post('/api/posts', blogpost.postBlogpost)
router.post('/api/comments', comment.postComment)
router.post('/api/subscriptions', subscription.addSubscription)

어느 쪽이든- 지저분해 보입니다. 복사/붙여넣기를 하지 않는 경우 매번 추가해야 한다는 것을 기억해야 하며 더 나은 방법이 있어야 할 것 같습니다.

청소하자



다행히도 이에 대한 수정은 정말 간단합니다.

경로 파일에서 각 경로에서 '/api'를 제거합니다.

const express = require('express')
const router = express.Router()

router.post('/users', users.createUser)
router.post('/posts', blogpost.postBlogpost)
router.post('/comments', comment.postComment)
router.post('/subscriptions', subscription.addSubscription)

module.exports = router

그리고 app.js(또는 server.js , Express 서버를 설정할 때마다):

const express = require('express')
const app = express()
const routes = require('./routes')

app.use('/api', routes) // routes is our routes file above

따라서 각 경로에 수동으로 '/api'를 추가하는 대신 Express 라우터를 app.js로 가져오고 '/api'를 앞에 추가합니다. 이번에는 한 번만! -에 app.use()

어떻게 작동합니까?



여기서 기본적으로 수행한 작업은 파이프라인을 구성하는 것입니다.
app를 기본 앱으로, router(라우트 파일)을 "하위 앱"으로 간주해 보겠습니다.

애플리케이션이 웹 요청을 수신하면 먼저 app.use('/api', routes)에 도달합니다. 요청이 '/api/blah/blah'와 같은 것과 일치하는 엔드포인트로 전송된 경우 app.use('/api', routes)에서 일치하고 거기에서 나머지 경로를 포함하는 하위 앱 라우터로 라우팅됩니다.

따라서 Express는 이 파이프라인을 구축하므로 더 이상 각 경로에 수동으로 '/api'를 추가할 필요가 없습니다!

마지막 한가지!



저는 Node와 JavaScript를 더 쉽게 이해할 수 있도록 많은 새로운 콘텐츠를 작성하고 있습니다. 때로는 복잡할 필요가 없다고 생각하기 때문에 더 쉽습니다. 이 게시물이 마음에 들고 도움이 된다면here's that link again 내 뉴스레터를 구독하세요!

좋은 웹페이지 즐겨찾기