지난주에 CMS 시스템을 구축하면서 세일즈 프레임워크를 접하고 몇 가지 ORM 개념을 배웠습니다. 이번 주에 저는 백그라운드 데이터 상호 작용을 탐구하기 시작했고 Twenty 프레임워크의 데이터 구조가 돛(예: 노드 및 카테고리)에 맞게 설계되었음을 발견했습니다. 선배가 정말 대단하다고 말하고 싶습니다. 그러나 복잡성도 증가했습니다. DTree 프로젝트에서 나의 임무는 돛을 사용하여 비즈니스 프로세스 및 데이터베이스와 상호 작용하는 것입니다. 이번 주의 나머지 시간은 모두 돛을 사용하는 것입니다.
돛 소개
Sails는 Ruby on Rails와 마찬가지로 웹 개발을 더 쉽게 만들기 위해 설계된 프레임워크입니다. 이 기간 동안 내가 아는 한, Express&Socket.io의 일부 API를 완전히 상속하고 통합 데이터베이스 상호 작용을 위해 워터라인(ORM)을 사용하므로 코드와 백본을 직접 수정하지 않고도 다양한 데이터베이스 환경에서 CRUD 작업을 완료할 수 있습니다. 프레임워크는 프런트엔드와 백엔드 데이터를 동기화하고 보안 검증 및 상호 작용을 위해 정책 미들웨어를 사용합니다. 자체 청사진은 프런트엔드와 백엔드에서 한 줄도 코딩하지 않고도 RESTfull API를 통해 데이터와 상호 작용할 수 있습니다.
Socket.io 및 익스프레스
프론트엔드 시간에 이 두 가지를 배웠습니다. 하나는 websock 통신이고, 다른 하나는 HTTP 요청을 처리하는 것입니다. Sails는 이를 재설계하지 않고 이 두 도구를 직접 사용하여 이러한 기능을 처리함으로써 학습 비용을 크게 줄였습니다. Socket.io는 서버와 클라이언트 측 모두에서 메시지를 트리거하고 메시지를 수신하며 그에 따라 작동합니다.
Express의 역할은 app.get('/login', function(req, res){});과 같은 라우팅 작업에 있습니다.
항해 청사진 및 백본
웹 개발에서 CRUD는 http의 가져오기/게시 및 데이터베이스의 선택/삽입과 같은 유사한 작업 유형입니다. Sais의 Blueprint API와 js의 백본 프레임워크는 모두 findOne과 같은 통합 기능을 사용하므로 프로그램이 모델과 해당 컨트롤러를 설정할 때 내부 논리가 이미 설정되어 있습니다. 예를 들어, 돛에서 일반적으로 사용되는 사용자 모델에는 사용자 데이터를 전송하고 저장하는 자체 구축 컨트롤러가 있습니다. 우리가 주의해야 할 것은 파일 이름과 비즈니스 프로세스의 사양입니다. 원래 메서드를 재정의(오버로드)하려는 경우에도 가능합니다. config 폴더의 경로에 액션과 컨트롤러를 설정한 후 해당 컨트롤러에 필요한 기능을 추가할 수 있습니다.
워터라인
create(), findOne(), update() 등과 같은 데이터베이스와 상호 작용하는 데는 종속성 패키지인 Sails의 API가 사용됩니다. 앞서 언급했듯이 다른 데이터베이스 도구에 대한 걱정 없이 이러한 메서드를 직접 호출할 수 있습니다. 예를 들어 데이터를 입력할 때
mysql 또는 mongoDB를 선택해야 하는 경우 시스템은 기본적으로 로컬 파일 시스템으로 설정됩니다. 구성 파일에서 이를 수정하고 데이터와 상호 작용할 데이터베이스의 어댑터를 선택하기만 하면 됩니다.
정책
http 요청이 실행되기 전에 실행되는 컨트롤러에 적용되는 미들웨어입니다. 예를 들어 로그인 후에만 다음 작업을 수행할 수 있는 등 신원 제어를 구현할 수 있습니다.
Sails는 성공적으로 사용되었지만 이에 대한 추가 작업이 필요합니다. 탄탄한 기반을 마련해야만 특정 요구 사항을 달성할 수 있습니다. 그래서 계속해서 배워야 하고, 돛을 깊이 배우기 위해 더 많은 루틴을 찾아야 하며, 이 프레임워크의 한계도 알아야 합니다.