Slackใฏใญใผใณใณใผใใฃใณใฐ[ใใใฏใจใณใ with NestJS + TypeORM]
Node.jsใฎSpringใจๅผใฐใใNestJSใๅญฆใณใDependency Injection๏ผไพๅญๆงใฎๆณจๅ ฅ๏ผใฎไพฟๅฉใใไฝ้จใใพใใใใAPI้็บใใใExpressใจใฎๆฏ่ผใใใใญใคใใในใใฃใณใฐใพใงใใในใฆใๅญฆใใงใฟใพใใใใ
ๅ่ฌ็ 1,931ๅ
้ฃๆๅบฆ ไธญ็ดไปฅไธ
ๅ่ฌๆ้ ็กๅถ้

- ๆช่งฃๆฑบ
๊ฐ์์๋ฃ๋ ์ด๋์ ๋ค์ด๋ฐ๋์?
์ด๋ฐ ์ง๋ฌธ ๋๋ ค ์ฃ์กํด์...;;
node.jsexpressnestjstypeormwillis
ใป
5ใถๆๅ
0
100
3
- ่งฃๆฑบ
์ง๋ฌธ ์์ต๋๋ค.
์๋ ํ์ธ์. API ๊ฐ๋ฐ์ ํ๋ค๊ฐ ํด๋ผ์ด์ธํธ์ IP๋ฅผ ๊ฐ์ ธ์์ ์ฌ์ฉ ํ ์ผ์ด ์๊ฒผ์ต๋๋ค.๊ฐ๋จํ๊ฒ Request ๊ฐ์ฒด์ ip ๊ฐ์ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ ค๊ณ ํ๋๋ฐ, ์ ํฌ ํด๋ผ์ด์ธํธ๊ฐ NextJS์ SSR์ ์ฌ์ฉํด์ ๋ ๋๋ง์ ํ๊ณ ์์ด์ ๋ธ๋ผ์ฐ์ ์์ ์์ฒญ์ ํ๋ฉด
node.jsexpressnestjstypeormdksqodwns
ใป
0
275
2
- ๆช่งฃๆฑบ
(๊ฐ์ 5:42 ์ง๋ฌธ) providers๋ฅผ ํตํ ์ฌ๋ฌ ๊ฐ์ ์ธ์คํด์ค ์์ฑ & exports ํตํ ์ฑ๊ธํค ์์ฑ
providers๋ฅผ ํตํด ๋ฑ๋ก๋ UsersService๋ ์ฑ๊ธํค์ธ์ง ๊ถ๊ธํ์ฌ nest.js ๊ณต์๋ฌธ์๋ฅผ ์ฐพ์๋ณด์์ต๋๋ค. UsersModule์ exports๋ฅผ ํตํด ์บก์ํ๋ ๊ณต๊ธ์๋ค์ ๋ด๋ณด๋ด๊ณ , AppModule์ Users
node.jsnestjstypeormpon5121918622
ใป
0
149
2
- ๆช่งฃๆฑบ
์ฝ๋ ํธ์ง๊ธฐ ํ์ฅ ํ๋ก๊ทธ๋จ
<img src="https://cdn.inflearn.com/public/files/posts/dd6f62cd-7917-4e62-9381-a09839ae4724/5dec6c37-9b4c-4ab1-9d83-3392ec9f7ed9.png" media-type="img"
node.jsexpressnestjstypeormไฝๆ่ ใชใ
ใป
0
192
2
- ่งฃๆฑบ
(์ง๋ฌธ)๋น๋ฐ ์ ์ฅ์์ ์ ๊ทผํ๊ธฐ ์ํ ์ธ์ฆ ์ ๋ณด๋ ๋ก์ปฌ .env์ ์ ์ฅํ๋์ง?
๋ง์ฝ ํ๊ฒฝ๋ณ์๋ฅผ ๋น๋ฐ์ ์ฅ์๋ฅผ ํตํด ๋ฐ์์จ๋ค๋ฉด, ๋น๋ฐ ์ ์ฅ์ ์ธ์ฆ์ ๋ํ ํ๊ฒฝ๋ณ์๋ ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ฐ์ ธ์ค๋์ง ๊ถ๊ธํฉ๋๋ค.(๋น๋ฐ์ ์ฅ์์ ์ ๊ทผํ๊ธฐ ์ํ ์ธ์ฆ ์ ๋ณด๋ ๋ก์ปฌ.env ํ์ผ์ ์ ์ฅํด์ผ ํ๋๊ฑด๊ฐ์?)
node.jsexpressnestjstypeormpon5121918622
ใป
0
136
2
- ๆช่งฃๆฑบ
(์ง๋ฌธ)์ธ๋ถ ์ ์ฅ์๋ฅผ ํตํ ํ๊ฒฝ๋ณ์ ๋ถ๋ฌ์ค๊ธฐ ๋น๋๊ธฐ ์ง๋ฌธ
const getEnv = async ()=>{ const response = await axios.get(โ/๋น๋ฐํค์์ฒญโ) return response.data } ๊ฐ์์์
node.jsexpressnestjstypeormpon5121918622
ใป
0
155
3
- ๆช่งฃๆฑบ
๋ก๊ทธ์ธ์ ํด๋ LoggedInGuard์ชฝ์์ false๊ฐ์ด ๋์ต๋๋ค.
import { createParamDecorator, ExecutionContext } from '@nestjs/common'; //์ ์ฅ๋ ์ฌ์ฉ์ ์ ๋ณด์ ์ ๊ทผ ๊ฐ๋ฅ export const User = createParamDecorator(
node.jsexpressnestjstypeormzzsqq
ใป
0
145
2
- ๆช่งฃๆฑบ
๋ก๊ทธ์ธ๋ฐฉ๋ฒ์ด ๊ณ ๋ฏผ๋ฉ๋๋ค.
์ ๊ฐ ํ๋ก ํธ์์๋ nextauth๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ nest์์๋ passport๋ฅผ ์ด์ฉํ๊ณ ์๋๋ฐ ๋๋ค ์ธ์ฆ๋ฐ ์ธ๊ฐ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๋ณด๋๊น ํ์ชฝ์์๋ง ์ธ์ฆ ์ธ๊ฐ๋ฅผ ํ๋๊ฒ ๋ง๋๊ฒ์ธ์ง ์๋๋ฉด ๋๋ค ์จ๋ ๋ฌธ์ ์๋๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
node.jsexpressnestjstypeormzzsqq
ใป
0
185
2
- ่งฃๆฑบ
yarn seed ๋ช ๋ น์ด ์คํ ์ ๋ฐ์ดํฐ ์ฝ์ ์๋จ
<img src="https://cdn.inflearn.com/public/files/posts/7978f856-1633-4469-b851-4c2a0335c213/c27ecf92-4f0d-45d5-891d-4f456ea7ce67.png" media-type="img"
node.jsexpressnestjstypeormrlans08081050
ใป
0
285
4
- ่งฃๆฑบ
yarn run db:create ์์ ๋ฐ์ํ๋ ๋ฐ์ฝ๋ ์ดํฐ ์ค๋ฅ
์ ๋ชฉ์ฒ๋ผ ๋ช ๋ น์ด ์คํ์ ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.Decorating class property failed. Please ensure that transform-class-properties is enabled and r uns
node.jsexpressnestjstypeormrlans08081050
ใป
0
235
2
- ๆช่งฃๆฑบ
npm run db:create ์์ ๋ฐ์ํ๋ decorating ์ค๋ฅ
cli ํตํด์ db์์ฑ์ ํ๋ฉด migration ํ ์ด๋ธ์ด ์๊ธฐ์ง ์์์ ์ค๋ฅ๋ฅผ ๋ค์ฌ๋ค ๋ดค๋๋ ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ์๊ฒผ์ต๋๋ค.ERROR Decorating class property failed. Please ensure that tran
node.jsexpressnestjstypeormlearningdevelop6675
ใป
0
227
2
- ๆช่งฃๆฑบ
RxJS ๋๋ฒ๊น ์ง๋ฌธ ์์ต๋๋ค.
์๋ ํ์ธ์. ์ ๋ก์ด๋ ์ ๊ฐ ์ข ์ง๋ฌธ์ด ๋ง์ ๊ฒ ๊ฐ์๋ฐ, ํญ์ ์น์ ํ๊ฒ ๋ต๋ณํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.๋ค๋ฆ์ด ์๋๋ผ, ๊ฐ๋ฐํ๋ฉด์ IDE์ ๋๋ฒ๊น ๋ชจ๋๋ฅผ ์ด์ฉํด๋ณธ์ ์ด ๊ฑฐ์ ์๊ณ , ํญ์ ๊ฐ์ ํ๋ฆ๊ณผ ๋ณํ๋ฅผ ์ฝ์๋ก ์ฐ์ด์ ๋๋ฒ๊น ์ ํ๊ณค ํ๋๋ฐ, ๋๋ฒ๊น ๋ชจ๋๋ฅผ ์ฌ์ฉํ
node.jsexpressnestjstypeormdksqodwns
ใป
0
181
3
- ๆช่งฃๆฑบ
CacheManager์ ๋ํด ์ง๋ฌธ ์์ต๋๋ค.
์๋ ํ์ธ์. ์ต๊ทผ์ ๊ฒ์๋ฌผ ์กฐํ์ ์นด์ดํ ์์ ์ ํ๊ณ ์์ต๋๋ค. ์ด๋ป๊ฒ ๊ตฌ์ฑ์ ํ ์ง ์๊ฐ์ ์ข ํด๋ณด๋ค๊ฐ, `CacheManger (<a target="_blank" rel="noopener noreferrer nofollow" href="https://docs.
node.jsexpressnestjstypeormdksqodwns
ใป
0
164
2
- ๆช่งฃๆฑบ
๋ก๊น ์ ์ด๋ป๊ฒ ํ๋๊ฒ ํจ์จ์ ์ผ๊น์?
์๋ ํ์ธ์. ๋ช๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค. ์ ๋ NestJS์์ ์ง์ํ๋ @nest/common ํจํค์ง์ Logger๋ฅผ ์ฌ์ฉํด์๋๋ฐ์. MTTD๋ฅผ ์ต์
node.jsexpressnestjstypeormdksqodwns
ใป
0
214
1
- ๆช่งฃๆฑบ
CORS ์ง๋ฌธ ์์ต๋๋ค.
์๋ ํ์ธ์.CORS ์๋ฌ๋ฅผ ํด๊ฒฐํ๊ณ ์๋๋ฐ, ์ ์ดํด๊ฐ ๊ฐ์ง ์๋๊ฒ ์์ด์ ์ง๋ฌธ ๋๋ฆฝ๋๋ค.<img src="https://cdn.inflearn.
node.jsexpressnestjstypeormdksqodwns
ใป
0
410
2
- ๆช่งฃๆฑบ
์ฟ ํค ์ต์ ์ ๋ํด์ ์ง๋ฌธ ์์ต๋๋ค.
์๋ ํ์ธ์. ๋ฐฑ์๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉํ๋ ๋๋ฉ์ธ์ด ๋ฌ๋ผ์, ์ฟ ํค์ samesite ์ต์ ์ none์ผ๋ก ์ฃผ๊ณ , secure ์ต์ ์ true๋ก ์ค์ ํด์ ์ฌ์ฉํ๊ณ ์์ต๋
node.jsexpressnestjstypeormdksqodwns
ใป
0
179
2
- ๆช่งฃๆฑบ
๋ก๊ทธ์์ ์์ฒญ์ด 403 forbidden ์๋ฌ๊ฐ ๋๋๋ฐ ์๊ทธ๋ฐ๊ฑธ๊น์??
"success": false, "code": 403, "data": "Forbidden resource"์ด๋ ๊ฒ ์๋ฌ๊ฐ๋ฉ๋๋ค.@ApiCookieAuth('connect.sid')
node.jsexpressnestjstypeormert16160784
ใป
0
438
1
- ่งฃๆฑบ
401 unauthorized๋ฌธ์
์๋ ํ์ธ์ ์ ๋ก์ด๋ LocalGuard์์ can์ผ๋ก ๋์ด๊ฐ์ง๊ฐ ์์์ ์ง๋ฌธ๋๋ฆฝ๋๋ค.import { ExecutionContext, Injectable } from '@nestjs/common'; import { AuthGuard } f
node.jsexpressnestjstypeormert16160784
ใป
0
274
1
- ๆช่งฃๆฑบ
๊ฐ๋์ ์ฅ์ ์ ๋ํด์ ์ง๋ฌธ์ด ์์ต๋๋ค.
์๋ ํ์ธ์. ์ ์ ๊ฐ ๊ฐ์ง ๊ถํ์ ๋ฐ๋ฅธ ์ ๊ทผ ์ ์ด ๊ฐ๋ฐ์ ํ๋ค ๋ฌธ๋ ๊ถ๊ธํ ๊ฒ์ด ์๊ฒผ๋๋ฐ์.์ ์ ๊ฐ ๊ถํ์ ๊ฐ๊ณ ์๋์ง ํ์ธํ๊ณ , ์ ๊ทผ์ ํ์ฉ/์ฐจ๋จ ํ๋ ์ฝ๋๋ฅผ ์๋น์ค์์ ์์ฑ ํ ์๋ ์๊ณ , ์ปค์คํ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์์ฑํด์ ์ปจํธ๋กค๋ฌ ๋จ์์ ๋ง์ ์๋ ์์์์
node.jsexpressnestjstypeormdksqodwns
ใป
0
220
1
- ๆช่งฃๆฑบ
์ ์ธ๊ณผ ํ ๋น์ด ๋์์ ๋๋๊ฒ์ Nest๋๋ฌธ์ด์๋๋ผ ํ์ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ด ์๋๊ฐ์?
๊ฐ์ 3๋ถ30์ด์ app.controller.ts ๋ถ๋ถ์ ๋๋ค.export class AppController { constructor(private readonly appService: AppService) {
typescriptwoong82498597
ใป
0
193
1

