사용자 정의 medusa 경로에서 서비스 사용
5673 단어 beginnersjavascriptwebdev
예를 들어 거기에서
ProductService
에 액세스할 수 있습니다. 제품을 검색할 수 있을 뿐만 아니라 제품을 만들고 업데이트할 수도 있습니다.사용자 지정 경로 내에서 이러한 서비스를 사용하는 방법을 살펴보겠습니다.
Medusa 루트에서 서비스 사용
이 예에서는
ProductService
를 사용하겠습니다. 먼저 custom route endpoint 을 추가해야 합니다.사용자 지정 경로 내에서 다음과 같이 이 서비스를 할당하여 시작할 수 있습니다.
const productService = req.scope.resolve('productService');
모든 제품을 나열하고 싶다고 가정해 보겠습니다. 다음 명령으로 쉽게 할 수 있습니다.
router.get('/store/test', async (req, res) => {
const productService = req.scope.resolve('productService');
productService.list().then((products) => {
res.json(products);
});
});
이제 서버를 다시 시작하고 이 끝점을 쿼리하면 제품 목록을 볼 수 있어야 합니다. (내 데이터베이스에는 하나의 효과만 있습니다).
물론 이 정보를 정확하게 검색할 수 있는 엔드포인트가 이미 있으므로 그다지 유익하지 않습니다.
멋진 부분은 이 데이터를 조작하도록 선택할 수 있다는 것입니다.
재고가 있는 항목만 원한다고 가정해 보겠습니다.
router.get('/store/test', async (req, res) => {
const productService = req.scope.resolve('productService');
productService.list({}, { relations: ['variants'] }).then((products) => {
res.json(
products.filter((product) =>
product.variants.some((variant) => variant.inventory_quantity >= 0)
)
);
});
});
여기에 몇 가지 변경 사항이 있습니다. 자세히 살펴보겠습니다.
첫 번째는 제품 목록 함수에 인수를 전달하는 것입니다.
이러한 인수는 다음과 같습니다.
{}
: 첫 번째 옵션은 쿼리할 매개변수입니다. 우리의 경우에는 특별한 사항이 없습니다{relations:['variants']}
: 쿼리에 특정 옵션을 추가하는 데 사용할 수 있습니다. 변형을 추가하고 싶습니다이 정보가 있으면 모든 제품을 필터링하고 적어도 하나의 변형에 재고가 있는 제품만 반환합니다.
쿼리에서 재고 수준을 조정하여 재생할 수 있습니다.
그게 다입니다. medusa의 서비스에서 질의하는 매우 강력한 방법입니다.
읽어주셔서 감사합니다. 연결합시다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나
Reference
이 문제에 관하여(사용자 정의 medusa 경로에서 서비스 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/using-services-in-custom-medusa-routes-31n7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)