프로그래밍 언어/HTML,CSS,JS

Node.js의 Connect, Express 및 "middleware"는 무엇일까?

Rateye 2021. 8. 6. 11:57
728x90
반응형
질문 : Node.js의 Connect, Express 및 "미들웨어"는 무엇입니까?

JavaScript를 잘 알고 있음에도 불구하고 Node.js 생태계의이 세 가지 프로젝트가 정확히 무엇을하는지 혼란 스럽습니다. Rails의 랙과 비슷합니까? 누군가 설명해 주시겠습니까?

답변

[ 업데이트 : 4.0 릴리스부터 Express는 더 이상 Connect를 사용하지 않습니다. 그러나 Express는 Connect 용으로 작성된 미들웨어와 여전히 호환됩니다. 내 원래 대답은 다음과 같습니다.]

Node.js를 보는 사람들에게 분명히 공통적 인 혼란의 지점이기 때문에 이것에 대해 질문 해 주셔서 감사합니다. 이를 설명하는 최선의 방법은 다음과 같습니다.

  • Node.js 자체는 HTTP 요청에 응답하는 데 사용할 수있는 객체를 createServer 메소드가 반환하는 http 모듈을 제공합니다. 이 개체는 http.Server 프로토 타입을 상속합니다.
  • Connect 는 또한 http.Server 의 확장 버전을 상속하는 객체를 반환하는 createServer 메소드를 제공합니다. Connect의 확장 기능은 주로 미들웨어를 쉽게 연결할 수 있도록합니다. 이것이 Connect가 스스로를 "미들웨어 프레임 워크"라고 설명하는 이유이며 종종 Ruby 's Rack과 유사합니다.
  • Express 는 Connect가 http 모듈에 수행하는 작업을 Connect에 수행합니다. Connect의 Server 프로토 타입 createServer 따라서 Connect의 모든 기능과 함께 뷰 렌더링 및 경로를 설명하는 편리한 DSL이 있습니다. Ruby의 Sinatra는 좋은 비유입니다.
  • 그런 다음 더 나아가 Express를 확장하는 다른 프레임 워크가 있습니다! 예를 들어 Zappa 는 CoffeeScript, 서버 측 jQuery 및 테스트 지원을 통합합니다.

 

 

다음은 "미들웨어"가 의미하는 구체적인 예입니다. 기본적으로 위의 어느 것도 정적 파일을 제공하지 않습니다. 그러나 connect.static (Connect와 함께 제공되는 미들웨어)을 넣으면 서버가 해당 디렉토리의 파일에 대한 액세스를 제공합니다. Express는 Connect의 미들웨어도 제공합니다. express.static connect.static 과 동일합니다. (둘 다 최근까지 staticProvider

내 인상은 대부분의 "실제"Node.js 앱이 요즘 Express로 개발되고 있다는 것입니다. 추가 된 기능은 매우 유용하며 원하는 경우 모든 하위 수준 기능이 그대로 유지됩니다.

출처 : https://stackoverflow.com/questions/5284340/what-is-node-js-connect-express-and-middleware
728x90
반응형