나쁜 소식부터 시작하자면 Node.js 는 꽤 젊은 기술이기 때문에 본격적인 웹 사이트를 만들고 유지 / 운영하는 과정이 현재 익숙한 것과 매우 다를 것임을 알게 될 것입니다.
Josh3736은 다음과 같이 덧붙입니다. Node.js와 다양한 패키지 (Connect, Express)가 작동하는 방식을 파악한 후 새 사이트를 매우 빠르게 개발할 수 있다는 것을 알게되었습니다.
현재 Node.js에 존재하는 거친 가장자리와 빠른 개발 속도 및 관련된 모든 모듈은 상황을 복잡하게 만들 수 있으며 원하는 것보다 덜 간단하고 빠르고 간단하게 만들 수 있습니다.
이를 막기 위해 좋은 소식이 있습니다.
노드 패키지 관리자는 NPM은 적합 웹 서버를 만들 수있어 좋은 도구와 Node.js를의 노출 된 뼈의 기능을 확장하기위한 프레임 워크를 많이 가지고있다.
가장 주목할만한 것은 웹 서버를 실행하는 데 필요한 거의 모든 것이 포함 된 Express 프레임 워크 입니다 (쿠키, 세션 및 경로 라우팅 포함). 또한 Express는 머리글 및 바닥 글 포함을 처리하는 부분을 지원합니다.
Express는 Sencha의 Connect 위에 구축되었습니다 . 쿠키와 세션은 실제로 Connect에서 제공합니다. Express는 라우팅을 단순화하고 뷰 / 부분을 처리합니다. 따라서 Express와 함께 제공되는 모든 종소리와 휘파람이 필요하지 않은 경우 대신 Connect로 이동할 수 있습니다.
이러한 부분에 템플릿을 사용하고 싶다면 Jade Template Engine으로 작업 속도를 높일 수 있습니다. Josh3736 은 Jade가 느리고 공백이 중요 하다고 지적 하지만 . 그의 가장 좋아하는 doT 를 포함 하는 더 완전한 개요는 여기 에서 찾을 수 있습니다 . (저는 개인적으로 기반 응용 프로그램에만 Node.js를 사용 하므로 템플릿 작성과 관련하여 저보다 더 나은 소스입니다).socket.io
당신은 할 수 사용 Node.js를에서 MySQL로 연결 DB-MySQL의 '현대 ... 모듈을, 그러나 당신이 필요하지 않은 경우 당신은 이미 시스템에 연결된 데이터에 액세스하고 있기 때문에, 나는 더 사용하는 조언을 거라고 '접근 방식 은 대부분의 Node.js 프로젝트처럼 NoSQL 데이터베이스 를 사용하는 것입니다. Mongoose 를 통한 MongoDB 는 인기있는 방법입니다.
또는 관심있는 객체를 저장하는 것이라면 대신 Redis 로 가십시오 (어쨌든 어느 시점에서 필요할 것입니다).
웹 사이트가 완성되면 배포하고 계속 실행되는지 확인해야합니다. 기본 제공 클러스터 지원을 사용하거나보다 기능 친화적 인 forever
npm 모듈을 사용하는 등 여러 가지 방법이 있습니다 . 자세한 내용은이 SO 질문을 참조하십시오.
결론 :
내가 얻으려는 것은 이것입니다.
Node.js로 웹 사이트를 구축하는 모범 사례가 무엇인지 묻는 것은 PHP로 웹 사이트를 구축하는 가장 좋은 방법이 무엇인지 묻는 것과 거의 같습니다. 100 명의 개발자가 100 가지 다른 답변을 제공합니다.
NPM은 관련된 많은 작업을 크게 단순화하는 다양하고 훌륭한 프레임 워크로 축복 받았지만, 어느 쪽이 실제로 갈 길을 선호하는지에 따라 결정됩니다.
내가 말했듯이 Node.js는 아직 꽤 젊은 기술이므로 프레임 워크 나 추가 도구는 아직 '사실상 표준'으로 등장하지 않았습니다. 수행하려는 대부분의 작업에는 다양한 대안이있을 수 있으며, Node.js 자체와 대부분의 모듈의 개발 속도가 빠르기 때문에 업데이트 중에 대부분을 사용할 때 코드가 손상 될 것으로 예상합니다. 계속 따라 가야합니다.
모두 합치면 :
내가 말했듯이 Node.js의 주요 프로덕션 용도는를 사용할 수있는 socket.io
것이므로 좋은 프로덕션 예제가 없습니다. (그리고 휴가를 떠나려고하므로 둘 중 하나를 모을 시간이 있습니다). 그래도 몇 가지 좋은 예가 있습니다.
다시 말하지만, 갈 길 (그리고 따라야 할 예)은 궁극적 인 목표와 선택한 기술에 따라 크게 달라 지지만 다행히도 모든 선택에 사용할 수있는 리소스가 많이 있습니다. 대부분의 모듈은 잘 문서화 된 GitHub 리포지토리를 사용하고 가장 인기있는 모듈과 함께 예제를 포함합니다 ( /examples/
대부분의 리포지토리에있는 것으로 보이는 디렉토리 참조 ).
행운을 빕니다! (그리고 내 오류를 수정 한 Josh3736 에게 감사드립니다 .)