Node.js

Moleculer - Node.js 프로젝트 세팅

jaewoo 2024. 4. 13. 22:47



Moleculer CLi 설치

npm install -g moleculer-cli

공식문서 - https://moleculer.services/docs/0.14/moleculer-cli.html

 

프로젝트 생성(타입스크립트)

moleculer init project-typescript education

 

위 명령어를 입력시 여러 질문들이 나오는데 Gateway 관련부분을 yes 를 입력하면 자동으로 api.service.ts 가 만들어지면서 ApiGateway 가 mixins 옵션에 추가되는거 같다.

(mixins 는 공식 문서에서 아래처럼 나와 있는데 결국 해당 서비스의 기능들이 모두 사용가능하게 된다는 것 같다.)

더보기

Mixins are a flexible way to distribute reusable functionalities for Moleculer services. The Service constructor merges these mixins with the current schema. When a service uses mixins, all properties present in the mixin will be “mixed” into the current service. 

 

프로젝트 세팅후 간단한 api 요청 테스트

세팅이 끝나고 api.service.ts 를 열어보면

aliases: {
	"POST /login" : "auth.login"
},

중간에 aliases 옵션이 있는데 해당 옵션에 위에 처럼 적어주면 http://localhost:3000/api/login 요청을 받는다. 

api 는 위쪽에 path 값으로 잡혀있어서 자동으로 경로가 지정된다. 바꾸고 싶으면 변경가능 

http://localhost:3000/api/login POST 요청이 들어오면 auth 서비스의 login 액션을 실행한다는 뜻이다.

 

 

import { Context, Service, ServiceBroker } from "moleculer";


export default class AuthSerivce extends Service {
    constructor(broker: ServiceBroker) {
        super(broker);

        this.parseServiceSchema({
            name: "auth",
            actions: {
                login: {
                    // rest: 'POST /login',
                    params : {
                        username: { type: "string" },
                        password: { type: "string" }
                    },
                    handler(ctx: Context<{ username: string, password: string }>){
                        const { username, password } = ctx.params;

                        if(username === "admin" && password === "admin") {
                            return { token: "토큰", message: "로그인 성공" }
                        } else {
                            throw new Error('계정 틀림');
                        }
                    }
                }
            }
        })
    }
}

위에 처럼 Auth 서비스를 선언하고 안에 login 액션을 선언해주면 된다.

 

선언후 개발환경에서 실행은 아래 명령어를 통해 실행한다.

npm run dev

 

 

 

요청 잘 받는 걸 볼수있다.

'Node.js' 카테고리의 다른 글

JS - var 를 for문에서 함수와 사용시 문제점 및 해결  (0) 2023.08.26