프로그래밍(Web)/Javascript(TS,Node)
[바미] Typescript-restful-starter - 이메일을 json데이터에 입력하여 생성하기
Bami
2020. 12. 22. 17:19
728x90
반응형
코드 수정
- Create 될 때 정적으로 이메일 데이터를 받는 것을 동적으로 이메일을 json데이터에 입력하여 생성할 수 있도록 수정함.
코드 수정 전
Sample.schemas.ts
import { number, object, string } from "joi";
/* 구조 정의 */
export const createSample = object().keys({
text: string().required(),
});
export const updateSample = object().keys({
id: number().required(),
text: string().required(),
});
export const deleteSample = object().keys({
id: number().required(),
});
Sample.service.ts
// input -> routes/Sample.route.ts 참조.
public async create(): Promise<Response> {
const { text } = this.req.body as { text: string };
this.sample.text = text;
this.sample.email = "someone@somewhere.com";
try {
const result = await this.sampleService.save(this.sample);
return this.res.status(200).send(result);
} catch (ex) {
return this.res.status(404).send({ text: "ERROR" });
}
}
- 코드 수정 후
Sample.schemas.ts
import { number, object, string } from "joi";
/* 구조 정의 */
export const createSample = object().keys({
text: string().required(),
email: string().required(), // 추가
});
export const updateSample = object().keys({
id: number().required(),
text: string().required(),
});
export const deleteSample = object().keys({
id: number().required(),
});
Sample.service.ts
// input -> routes/Sample.route.ts 참조.
public async create(): Promise<Response> {
// const { text } = this.req.body as { text: string }; -> 기존 코드
// Sample.schemas.ts에서 따로 email의 입력 받는 틀을 잡아주면 아래의 코드를 사용할 수 있다.
const { text, email } = this.req.body as { text: string, email: string }; // 이 부분 수정
this.sample.text = text;
this.sample.email = email; // 이 부분 수정
// this.sample.email = "someone@somewhere.com"; -> 기존 코드
try {
const result = await this.sampleService.save(this.sample);
return this.res.status(200).send(result);
} catch (ex) {
return this.res.status(404).send({ text: "ERROR" });
}
}
출력화면
Tester
Web
728x90
반응형