@atlas.jsstrv에서 ❤️로 제작되었습니다
Atlas.js는 주로 여러 프로젝트 중 코드를 재사용하고 표준 Node.js 앱의 시작 및 종료 시퀀스와 같은 일반적인 응용 프로그램 보일러 플레이트를 줄이기 위해 주로 만들어진 플랫폼입니다. 데이터베이스 구성 요소와 같은 기능을 제공하는 구성 요소 (또는 사용)를 작성하고 Atlas 인스턴스에 넣으면 Atlas가 나머지를 처리합니다. Atlas를 사용하면 응용 프로그램 초기화 및 종료 시퀀스가 구성 객체와 한 줄의 코드로 줄어 듭니다.
다음은 STRV 메인 구성 요소 목록입니다.
| 요소 | 버전 | 정보 |
|---|---|---|
| @atlas.js/atlas | 롤링에 필요한 모든 것을 갖춘 메인 패키지 | |
| @atlas.js/cli | Atlas 앱을 관리하는 CLI 유틸리티 | |
| @atlas.js/generator-atlas | Yeoman Generator는 새로운 Atlas 앱을 신속하게 발판으로 발사합니다 | |
| @atlas.js/aws | AWS와 인터페이스 | |
| @atlas.js/braintree | Braintree 지불과의 인터페이스 | |
| @atlas.js/firebase | Firebase 서비스와 인터페이스 | |
| @atlas.js/koa | KOA 기반 HTTP API를 구현하기위한 서비스 및 후크 | |
| @atlas.js/mongoose | MongoDB 및 Mongoose 모델과의 협력을위한 서비스 및 고리 | |
| @atlas.js/이의 제기 | 이의 제기 작업을위한 서비스 및 고리 주제 | |
| @atlas.js/sequelize | 속편으로 작업하기위한 서비스 및 고리 | |
| @atlas.js/nodeMailer | 여러 공급자를 지원하는 일반 이메일 서비스 | |
| @atlas.js/Repl | 아틀라스로드 된 대화 형 쉘에 떨어질 구성 요소 | |
| @atlas.js/템플릿 | Consolidate.js를 사용하여 템플릿을 HTML 문자열로 템플릿으로 렌더링하는 작업 |
당신이 찾고 있던 것을 찾지 못했습니까? 직접 쓰십시오! 아래 링크 된 자습서를 확인하십시오.
도움이 필요하십니까? 튜토리얼 폴더를 확인하십시오 ... 튜토리얼. ?
다음 섹션에서는 Atlas.js의 존재의 동기에 대해 이야기합니다.
Atlas.js 및 Strv-Made 구성 요소에 익숙해지면 프로젝트간에 많은 코드를 공유 할 수 있도록 많은 노력을 기울이고 있다고 생각합니다. 가능할 때마다 Atlas.js는 비즈니스 별이 아닌 방식으로 많은 코드를 작성하고 모듈로 NPM에 게시 한 후 다른 프로젝트에서 다시 필요할 때 다시 설치하면 모든 것이 작동합니다.
시작 시퀀스를 관리하는 것이 항상 쉬운 것은 아닙니다. 때로는 누군가가 앱의 올바른 시작 시퀀스로 자신을 귀찮게 해야하는 이유는 확실하지 않습니다. 요즘에는 일부 비동기 초기화가 필요한 많은 라이브러리가 도서관을 사용하기 시작하는 곳에서 어떤 종류의 요청 캐싱을 지원하고 준비가되었을 때 결과를 전달할 것입니다.
여기에는 몇 가지 문제가 있습니다.
일부 서비스는 다른 서비스보다 빨리 시작될 수 있습니다
데이터베이스 연결이 준비되기 전에 HTTP 서버를 시작하면 아직 봉사 할 준비가되지 않은 트래픽을 받게 될 수 있습니다. 작은 부하의 경우 이것은 문제가되지 않을 수 있지만 트래픽이 많은 사이트의 경우 몇 초의 지연을 의미 할 수 있으며 보류중인 요청을 너무 오랫동안 캐싱하여 사용 가능한 메모리를 소진 할 수도 있습니다. 이런 종류의 요청 캐싱이 지원되지 않으면 앱이 충돌 할 수 있습니다.
일부 서비스는 다른 서비스보다 빨리 중단 될 수 있습니다
HTTP 서버를 닫기 전에 데이터베이스 연결을 닫을 때 응용 프로그램은 어떻게됩니까? 물론 두 서비스만으로 쉽게 관리 할 수 있지만 더 많은 경우에는 어떻게 되나요? 어딘가에 어딘가에 Redis 서버가있을 수 있습니다. 아마도 Elasticsearch 클러스터 연결 및 기타 WhatNots가있을 수도 있습니다. 매우 빠르게 복잡해 질 수 있습니다. 아틀라스를 사용하면 직관적으로 주문을 제공하고 완료됩니다. Atlas는 서비스를 하나씩 중지합니다.
일부 개발자는 신경 쓰지 않고 단지 process.exit()
일부 개발자는 타임 아웃, 소켓, 청취자 등과 같은 자원을 올바르게 정리하는 데 귀찮게하기를 원하지 않습니다. 그러나 응답을 전달하기 전에 일부 클라이언트 요청이 종료되어 이상한 오류, 빈 페이지, 불완전한 데이터 등이 발생할 수 있습니다.
Atlas.js가 제공하는 내용을 모두 사용하고 구성 요소를 최대한 활용하기로 결정할 때 곧 완전히 익숙하지 않은 코드베이스를 쉽게 탐색하는 것이 매우 쉽다는 사실을 곧 알게 될 것입니다. 특정 기능을 어디에 어디서 찾을 수 있는지 알 수 있습니다. STRV와 같은 회사에서 일할 때는 몇 개월 정도마다 프로젝트를 전환하는 것이 드문 일이 아닙니다. 팀에 새로운 남자/gal을 탑승하는 데 필요한 시간을 줄일 수 있으면 모든 당사자가 더 행복 할 것입니다.
이것은 완전한 사용 예입니다. 실제 앱은 최소한 구성 부품을 자체 모듈로 분할하여 이와 같이 인라인으로 쓰는 대신 자체 모듈로 분할됩니다.
또한 지정한 파일/폴더 레이아웃을 기반으로 모든 구성 요소를 초기화하는
Atlas.init()확인할 수도 있습니다. ?쉬운 도로를 가져 가려면 여인 생성기를 확인하여 기본 폴더 구조를 신속하게 생성하고 필요한 모든 것을 설치하십시오.
// We start by importing the required components...
import { Atlas } from '@atlas.js/atlas'
import * as Koa from '@atlas.js/koa'
// Now we need an instance of Atlas, so let's make one
const atlas = new Atlas ( {
// We MUST specify the root folder where our app resides
// This should usually point to the folder where your package.json resides
root : __dirname ,
// Setting env is optional and it fallbacks to NODE_ENV, of course
env : process . env . NODE_ENV ,
// This is where all the configuration data should be specified, for all the components
config : {
// Configuration for services
services : {
// The `http` configuration will be given to the service which we will name as `http`
// (see the `atlas.service()` call below)
http : {
// This goes to the `listen()` function call
listen : {
port : 3000 ,
} ,
// Any properties which Koa supports can be set here
koa : {
proxy : true ,
} ,
} ,
} ,
// Configuration for actions
actions : { } ,
// ...aaand configuration for hooks
hooks : { } ,
} ,
} )
// We need to add the components we want to use to the application
// The first argument is the component's name - it will be used to locate the component's
// configuration and also the service will be exposed on that property:
// `atlas.services.http`
atlas . service ( 'http' , Koa . Service )
// Great, we can finally start the app!
atlas . start ( )
. then ( ( ) => console . log ( 'ready!' ) )
. catch ( err => console . error ( err ) )
export default atlas각 구성 요소가 수락하는 구성 옵션은 자체 패키지 저장소/폴더에 문서화됩니다.
따라서 KOA 서비스가 구성되고 실행되는 앱이 있습니다 ... 훌륭합니다! 그러나 당신은 아마도 당신의 미들웨어와 경로와 다른 모든 중요한 것들을 정의 할 곳을 궁금해 할 것입니까? 훨씬 더 많은 정보는 튜토리얼 폴더를 확인해야합니다!
정보는 라이센스 파일을 참조하십시오.