Redux에서 제품 데이터 객체 생성하기
판매자 객체를 생성하는 함수는 있으니, 이제 제품으로 넘어가겠습니다. 이 객체를 생성하는 것은 데이터 필드가 더 많기 때문에 조금 더 복잡할 것입니다. 시작해 보겠습니다.
제품 애플리케이션을 열고,
그 안에 있는 server.js 파일을 열어보겠습니다.
getRandInt 함수 아래에 우리의 함수
createProductData를 작성하겠습니다:
const createProductData = () => {}
이제 필요한 속성들을 정의하겠습니다.
name, price 및 amount에 대한 값은
이전 강의에서 작성한 getRandInt 함수를 사용하여 생성하겠습니다:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
설명을 생성하기 위해 또 다른 유용한 도구를 사용하겠습니다. 이는 faker 라이브러리로, 가짜 이름, 주소, 이메일, 거리 이름, 텍스트 등을 다양한 언어로 생성할 수 있게 해줍니다. 터미널에 다음 명령어를 입력하여 이 라이브러리를 우리 애플리케이션에 설치해 보겠습니다:
npm install @faker-js/faker --save-dev
그런 다음 파일에 임포트하겠습니다:
import { faker } from '@faker-js/faker'
이 라이브러리를 사용하여 잘 알려진 'Lorem ipsum' 텍스트인 'Lorem ipsum'를 포함하는 문장을 생성해 보겠습니다.
설명이 3개에서 5개까지의 이러한 문장을 포함하도록 하겠습니다:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
이제 객체에 반응(reactions) 필드를 추가하겠습니다.
값으로는 create 명령으로 즉시 생성된 객체를 전달하겠습니다(반응은 현재 모두 0으로 설정될 것입니다):
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
reactions: db.reaction.create(),
}
}
마지막 속성으로 이미 생성된 판매자 객체를 추가하겠습니다.
이 객체는 반드시 createProductData 함수의 매개변수로 전달되어야 합니다.
다음은 제품 객체 생성을 위한 함수의 전체 코드입니다:
const createProductData = (seller) => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
reactions: db.reaction.create(),
seller,
}
}
학생 애플리케이션을 열어보세요. 이번 강의의 내용을 학습한 후, 학생 데이터 객체를 생성하는 함수를 작성해 보세요.