Nuxt/Vue 마이크로 서비스 구현

지금까지 프런트 엔드용 마이크로 서비스 아키텍처의 기본 사항과 서비스 선택 방법에 대해 설명했습니다.




이 게시물에서는 세 가지 주요 부분으로 구성된 쇼핑 웹사이트를 고려하고 이름을 myshop.com으로 지정합니다.
  • 계정
  • 쇼핑
  • 프로필

  • 계정 서비스는 다음 경로를 가진 myshop.com/account에 마운트됩니다.
  • /계정/로그인
  • /계정/등록
  • /account/forget-password

  • Shop 서비스는 myshop.com/shop에 다음과 같은 경로로 탑재됩니다.
  • /상점/제품
  • /shop/product/:id
  • /상점/바구니

  • 프로필 서비스는 다음 경로가 있는 myshop.com/profile에 마운트됩니다.
  • /프로필/주문
  • /profile/edit-profile

  • 이전에 논의한 것처럼 각 서비스는 Nuxt 프로젝트가 될 것입니다. 첫 번째 단계로 3개의 Nuxt 프로젝트를 생성합니다.

    다음 디렉토리에서 만들었습니다.
  • /home/farhad/projects/nuxt-account
  • /home/farhad/projects/nuxt-shop
  • /home/farhad/projects/nuxt-profile

  • 다음 단계에서는 원하는 Nuxt 프로젝트로 각 요청을 처리할 라우터가 필요합니다.

    이 라우터를 개발하여 npm에 게시했습니다.

    그것을 설치하고 그것을 사용하는 방법을 보자.

    새 프로젝트 만들기
    geshniz-router 패키지 설치
    index.ts 파일을 생성하고 아래 코드를 추가합니다.

    ‍‍‍

    import {NuxtService, App} from 'geshniz-router'
    
    const app = new App(4000, '0.0.0.0')
    
    const account = new NuxtService({
        evn: 'dev',
        name: 'Account',
        mountPath: '/account',
        rootPath: '/home/farhad/projects/nuxt-account/'
    })
    
    const shop = new NuxtService({
        env: 'dev',
        name: 'Shop',
        mountPath: '/shop',
        rootPath: '/home/farhad/projects/nuxt-shop'
    })
    
    
    const profile = new NuxtService({
        env: 'start',
        name: 'Profile',
        mountPath: '/profile',
        rootPath: '/home/farhad/projects/nuxt-profile'
    })
    
    app.registerService(account)
    app.registerService(shop)
    app.registerService(profile)
    
    


    그런 다음 실행

    ts-node index.ts
    


    또는 tsc로 컴파일하고 node.js로 실행하십시오.

    이제 127.0.0.1:4000/profile/orders를 확인하면 nuxt-profile 프로젝트 및 기타 요청에서 응답이 옵니다.

    App 클래스와 NuxtService 클래스에 대해 설명하겠습니다.

    App 클래스 인스턴스는 웹 서버 생성을 위한 두 개의 매개 변수인 Ports와 hosts를 각각 허용하며 경로에 NuxtService 인스턴스 클래스를 등록하는 하나의 메서드가 있습니다.

    new NuxtService({
        env: '', // dev or start
        name: 'Profile', // only a name
        mountPath: '/profile', 
        rootPath: '/home/farhad/projects/nuxt-profile'
    })
    


    하나의 서비스에서만 작업하는 경우 env 속성을 'start'로 설정하여 다른 서비스를 프로덕션 모드로 설정할 수 있습니다.
    또한 nuxt 프로젝트는 메인 프로젝트의 디렉토리를 벗어날 수 있습니다.

    새로운 Nuxt 서비스 인스턴스를 App 클래스에 등록하면 mountPath 경로에 대한 모든 수신 요청이 이 서비스에 의해 처리됩니다.

    타브리즈의 아름다운 공원에서 표지 사진을 직접 찍었습니다.

    좋은 웹페이지 즐겨찾기