Project using Nest.js/E-commerce App
slug를 이용해서 category search 하기
Cog Factory
2021. 9. 4. 08:36
개요
Slug는 web 주소의 고유 식별 부분이다. 보통 URL의 끝부분이다. 내 주소에서는 baseURL(clownhacker.tistory.com/)의 뒷 부분인 번호다. 카테고리에 있는 품목 리스트를 출력하기 위해서 카테고리 slug 값이 필요하다. 카테고리 slug 값은 카테고리 name을 processed 한 것이다.
categories.service.ts
async createCategory({
name,
coverImg,
}: CreateCategoryInput): Promise<CreateCategoryOutput> {
try {
const categoryName = name.trim().toLowerCase();
const categorySlug = categoryName.replace(/ /g, '-');
const category = await this.categories.findOne({
slug: categorySlug,
});
if (category) {
return {
ok: false,
error: '이미 해당 카테고리를 추가하셨습니다.',
};
}
await this.categories.save(
this.categories.create({
name: categoryName,
coverImg,
slug: categorySlug,
}),
);
return {
ok: true,
};
} catch (error) {
console.error(error);
return {
ok: false,
error: '카테고리를 추가할 수 없습니다.',
};
}
}
category를 생성할 때 예를 들어 카테고리 이름을 ' Grocery and Electronics '라고 해보자. 이 때 양 옆에 공백을 trim()으로 지우고 모든 문자를 lowercase로 바꾼다. 이렇게 이름을 가공하고 모든 띄어쓰기를 '-'로 교체하면 slug 값이 완성된다.
Github link
Create create-category resolver : https://github.com/zpskek/houpang-backend-v1/commit/a91b4815ccdd58c08315da74569b5bcb8e68b693