노드 프로젝트 뼈대 2부: 해부
개요
이 게시물에서는 내 노드 애플리케이션 상용구 구조의 다양한 요소의 기능과 목적을 살펴보겠습니다.
애플리케이션을 실행하려면 에서 설명한 대로 MongoDB에 일부 데이터가 필요합니다. 이해하지 못한 경우 다시 실행하여 해당 부분을 수행하거나 애플리케이션을 실행하지 않고 따라갈 수 있습니다.
첫 번째 게시물에서도 언급했듯이, 우리는 작업할 예정이므로this repo 아직 다운로드하지 않았다면 다운로드하세요.
노드 프로젝트 스켈레톤 구성 요소
이 프로젝트를 구성하는 여러 가지 사항에 대해 간단히 이야기하겠습니다. 이것은 확실히 최소한의 프로젝트 구조입니다. 더 복잡할 수 있습니다.
이 프로젝트 골격을 원하는 이유 때문에 단순할수록 좋습니다. 나는 그것이 매우 가벼운 출발점 역할을 하고 싶습니다.
프로젝트의 기본 최상위 구조는 다음과 같습니다.
db/
에는 서버 측 코드가 데이터베이스 명령을 수행할 수 있도록 해주는 편리한 드라이버인 MongoDB middleware for NodeJS이 포함되어 있습니다. routes/
디렉토리에는 GET/POST/PATCH/etc에 대한 논리가 있는 각 끝점에 대한 파일이 포함되어 있습니다. test/
디렉토리에는 단위 테스트와 통합 테스트가 모두 포함되어 있으며 테스트 스위트를 실행할 때 이름이 test인 디렉토리를 찾고 utils/
는 단위 테스트 가치가 있는 무언가를 갖도록 이 예제에서 약간 고안되었습니다. 일반적인 응용 프로그램에서는 여기에 기타 논리 및 도우미 기능이 있습니다최상위 레벨
server.js
은 Mongo용 데이터베이스 클라이언트와 Express 앱 인스턴스에 대한 경로를 연결하고 포트 3000package.json
에는 이 프로젝트를 실행하는 데 필요한 다양한 npm 패키지가 포함되어 있으며 프로젝트를 정상적으로 실행하기 위한 스크립트( npm run start
) 및 테스트 도구 모음을 실행하기 위한 스크립트( npm run test
) 프로젝트 요소: 경로
이 앱에서 수행할 작업을 위해 장비와 포켓몬이라는 두 가지 주요 리소스가 있습니다. 각 리소스에는 해당 리소스에 대한 읽기 및 쓰기 작업을 수행하는 데 필요한 모든 논리가 포함된 경로 파일이 있습니다.
아래에서 경로 파일의 기본 골격을 볼 수 있습니다. 구조는 매우 균일하며
router.<HTTP verb>
내부에 로직이 있습니다. 다음 게시물에서 경로에 대한 전체 논리를 작성할 것입니다.// routes/equipment.js
router.get("/", async (req, res) => {
/* Do stuff */
});
router.post("/", async (req, res) => {
/* Do stuff */
});
router.patch("/:id", async (req, res) => {
/* Do stuff */
});
router.delete("/:id", async (req, res) => {
/* Do stuff */
});
프로젝트 요소: mongo 명령
여기에서 살펴볼 내용보다 더 많은 내용이 있지만 MongoDB 명령을 잘 활용하여 데이터 세트 작업을 수행할 것입니다. 관계형 데이터베이스 배경이 있고 이전에 mongo로 작업한 적이 없다면 실제로 알아야 할 것은 SQL에서 대부분의 구성 및 기능에 해당하는 mongo를 찾는 것이 어렵지 않다는 것입니다.
아래에서 SQL/Mongo 간 변환 가이드the MongoDB docs의 몇 가지 예를 볼 수 있습니다.
프로젝트 요소: Mocha/Chai 테스트 툴킷
이 가이드는 NodeJS 생태계에 대한 회오리 바람 투어이지만 테스트에서 사용할 일부 기능에 대한 간략한 가이드입니다.
describe()
는 테스트 그룹it()
는 특정 테스트assert()
는 당연히 우리의 테스트에서 참일 것으로 예상되는 주장을 요구합니다. 다양한 표현을 수용할 수 있습니다equals()
항목 간 동등성 측정includes()
는 문자열의 하위 문자열 또는 배열의 항목을 확인하는 데 사용할 수 있습니다다음
3부에서는 몇 가지 엔드포인트를 구축하고 테스트를 수행할 자체 작업을 수행할 것입니다. 이 시리즈의 결론을 계속 지켜봐 주십시오.
Reference
이 문제에 관하여(노드 프로젝트 뼈대 2부: 해부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/heyjtk/node-project-skeleton-part-ii-anatomy-i1e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)