๐Ÿžํ”„๋กœ๊ทธ๋ž˜๋ฐ

[Nextjs] ์›ํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด ์ œ์™ธํ•˜๊ณ  ๋ฐฐ์—ด json return ํ•˜๊ธฐ

TwoIceFish 2023. 12. 14. 13:11

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๊ฐ์ฒด๋ถ„ํ•ด ๋ฌธ๋ฒ•์„ ํ†ตํ•˜์—ฌ return ํ•œ๋‹ค

export async function GET(request: NextRequest) {
    const result = await prismadb.user.findMany();

    // Modify the result to exclude the 'hashedPassword' field
    const modifiedResult = result.map(({ hashedPassword, ...rest }) => rest);

    return NextResponse.json(modifiedResult);
}

 

const modifiedResult = result.map(({ hashedPassword, ...rest }) => rest);์—์„œ ๊ฐ์ฒด ๋ถ„ํ•ด๊ฐ€ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” ({ hashedPassword, ...rest }) => rest ๋ถ€๋ถ„์ด ๊ฐ์ฒด ๋ถ„ํ•ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ๋œ { hashedPassword, ...rest }๋Š” ๊ฐ์ฒด ๋ถ„ํ•ด ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ result ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๊ฐ€ ๊ฐ€์ง„ ๊ฐ์ฒด์—์„œ hashedPassword ํ•„๋“œ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ๋‚˜๋จธ์ง€ ํ•„๋“œ๋Š” rest๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ฐ์ฒด์— ๋‹ด๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋ฉด:

  • hashedPassword: ๊ธฐ์กด ๊ฐ์ฒด์—์„œ hashedPassword ํ•„๋“œ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ํ•ด๋‹น ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ...rest: ๋‚˜๋จธ์ง€ ํ•„๋“œ๋Š” ์ƒˆ๋กœ์šด ๊ฐ์ฒด์ธ rest์— ๋‹ด์Šต๋‹ˆ๋‹ค. ...๋Š” ๋‚˜๋จธ์ง€ ํ•„๋“œ๋ฅผ ์˜๋ฏธํ•˜๋Š” JavaScript์˜ ํ™•์žฅ ๋ฌธ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ๋‚˜๋จธ์ง€ ํ•„๋“œ๋“ค์„ ํ•œ๊บผ๋ฒˆ์— ์ƒˆ๋กœ์šด ๊ฐ์ฒด์— ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด modifiedResult ๋ฐฐ์—ด์€ result ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์—์„œ hashedPassword ํ•„๋“œ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํ•„๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋“ค์„ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

Return Before

๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ hashedPassword๋กœ return ๋จ

[{"id":"clq4odk060000vrdgwcwuex13","hashedPassword":"$2js9dv90j90S%Sijdfoj!sdf"}]

 

Return After

hashedPassword๊ฐ€ ์—†์–ด์ง

[{"id":"clq4odk060000vrdgwcwuex13"]