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 |
---|