lmsj122
@lmsj122
Reviews Written
1
Average Rating
5.0
Posts
Q&A
concat ํจ์ ํ์ ๊ตฌํ ์ค ์ง๋ฌธ ์์ต๋๋ค!
interface Arr{ concat(...values: Arr[]): (T | U) []; } const a: Arr = [1,2,3] as unknown as Arr; const b: Arr = [1, '2', 3, '4'] as unknown as Arr; const c = a.concat(b, a) const d = b.concat(a)์๋ณธ ์ฝ๋์ ๋๋ค!
- 0
- 2
- 54
Q&A
์๋์ฐ ํ์ผํ์๊ธฐ ์ฃผ์์ฐฝ์์ cmd๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ ํด๋น ๊ฒฝ๋ก๋ก ๋ฐ๋ก cmd๋ฅผ ์ด ์ ์์ต๋๋ค.
์ค์ค
- 2
- 2
- 150
Q&A
ํธ๋์ญ์ ๊ธฐ๋ฅ์ ์๋น์ค ํจ์๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ
ํธ๋์ญ์ ๊ธฐ๋ฅ์ ์๋น์ค๋ก ๊ตฌํํ์ค ๋,auctionedOff ํจ์๋ ๊ทธ๋๋ก ์ ์งํ์๊ณ contollers/index.js ํ์ผ์์๋ ์ด๋ ๊ฒconst job = schedule.scheduleJob(end, () => { auctionedOff(good) });checkAuction.js ํ์ผ์์๋ ์ด๋ ๊ฒtargets.forEach((good) => { auctionedOff(good) });๋ฐ๊พธ์๋ ๊ฒ๋ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค! scheduleJob ๊ณผ forEach ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ก ํจ์ ์์ฒด๋ฅผ ๋ฐ์์ผ ํ๋๊น์. ๋ง์ฝ์ ํจ์ ์์ฒด๋ฅผ ์ ๋ฌํ์ง ์๊ณ auctionedOff(good)์ ๊ทธ๋๋ก ์ฃผ๊ฒ ๋๋ฉด, auctionedOff(good)์ ๋ฐํ๊ฐ์ undefined ์ด๋ฏ๋ก, ๊ทธ๋๋ก ํ๋ผ๋ฏธํฐ๋ก undefined๋ฅผ ์ ๋ฌํ๊ฒ ๋ฉ๋๋ค.
- 0
- 6
- 342
Q&A
์ฑํ ๋ฐฉ์ ๋ง๋ ๋ธ๋ผ์ฐ์ ์์ ๋ชจ๋ ๋๊ฐ์ ๊ฒฝ์ฐ ๋ฌธ์๋๋ฆฝ๋๋ค.
ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์์๋ ์๋ก๊ณ ์นจ์ ํด์ผ ์ ๊ฑฐ๊ฐ ๋๋๋ฐ, ์ฃ์ง์์๋ ์๋ก๊ณ ์นจ์ ํ์ง ์์๋ ์ ๊ฐ๊ฐ ๋๋ ์ด์ ๋ฅผ ์ ์ ์์๊น์??
- 0
- 2
- 363
Q&A
๋ชฝ๊ตฌ์ค ์ฟผ๋ฆฌ remove ์๋ฌ ๋ฌธ์
TypeError: Room.remove is not a function ์๋ฌ๋ MongoDB์ Mongoose์์ ์ฌ์ฉ๋๋ ๋ชจ๋ธ ๋ฉ์๋์ ๋ฒ์ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. Mongoose 6.x ์ด์์์๋ Model.remove() ๋ฉ์๋๊ฐ ์ ๊ฑฐ(deprecated) ๋์์ผ๋ฉฐ, ๋์ Model.deleteOne() ๋๋ **Model.deleteMany()**๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.๋ผ๊ณ ํฉ๋๋ค..
- 0
- 2
- 371
Q&A
morgan๋ชจ๋์ด cors ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋๋ง OPTIONS ๋ฉ์๋๊ฐ ๋ก๊น ์ด ๋๋ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค.
์ธ๋ถ ๋ธ๋ผ์ฐ์ ์์ ์๋ฒ๋ก ๊ต์ฐจ ์ถ์ฒ ์์ฒญ์ ๋ณด๋ผ ๋, ๋ธ๋ผ์ฐ์ ๋ CORS ์ ์ฑ ์ ๋ฐ๋ผ ํ์ํ ๊ฒฝ์ฐ์๋ง OPTIONS ์์ฒญ(Preflight ์์ฒญ)์ ๋ณด๋ ๋๋ค. CORS ์ ์ฑ ์ด ์ ์ฉ๋๋๋ผ๋ Preflight ์์ฒญ์ด ํ์ํ ์กฐ๊ฑด์ ์ถฉ์กฑํ์ง ์์ผ๋ฉด OPTIONS ์์ฒญ์ ๋ณด๋ด์ง ์์ต๋๋ค. ๋ํ, ๋ชจ๋ ์์ฒญ์ ์ ํํ ํ์ธํ๋ ค๋ฉด morgan ๋ณด๋ค๋ ๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ํฉํฉ๋๋ค. ๊ฐ๋ฐ์ ๋๊ตฌ์์๋ OPTIONS ์์ฒญ ์ฌ๋ถ์ CORS ์ ์ฑ ์ ์ํฅ์ ๋ช ํํ ํ์ธํ ์ ์์ต๋๋ค.
- 0
- 2
- 140
Q&A
ws ํ๋กํ ์ฝ ์ฐ๊ฒฐ์ ์ฌ์ดํธ ์ฐ๊ฒฐํ ์ ์์ ๋ฉ์ธ์ง๊ฐ ๋์ค๊ณ ํ์ด์ง ํธ์ถ์ด ๋์ง ์์ต๋๋ค.
์ง๊ธ ์ฃผ์ ์ฐฝ์์ ๋ณด์๋ฉด http:// ๊ฐ ์๋ ws:// ๋ก ํ๊ณ ๊ณ์ญ๋๋ค. http๋ก ์ ์ํด์ผ ํฉ๋๋ค.
- 0
- 3
- 401
Q&A
10.4 ํ ํฐํ ์คํธ์๋ ํ์๋์ง๋ง api ์๋ฒ์๋ ์ ํจํ์ง ์๋ค๊ณ ๋์์.
๋ธ๋ผ์ฐ์ ์๋ค localhost:8002/v1/test ๋ฅผ ์ ๋ ฅํ์๋ฉด ์๋ฉ๋๋ค.'localhost:8002/v1/test' ์ฃผ์๋ nodecat ์๋ฒ, ์ฆ ํด๋ผ์ด์ธํธ ์ธก์์ ์ด๋ฏธ ํ ํฐ์ ๋ฐ๊ธ๋ฐ์ ์ํ์์, ํ ํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ๊ธฐ ์ํ ์ฃผ์์ ๋๋ค.// /v1/test router.get('/test', verifyToken, tokenTest); ์ด ์ฝ๋์์๋ ์ ์ ์๋ฏ์ด 'localhost:8002/v1/test' ์ฃผ์๋ก Get ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ฉด verifyToken ๋ฏธ๋ค์จ์ด๋ก ๊ฐ๊ฒ ๋๋๋ฐ, ๊ทธ๊ณณ์์ ๊ฐ์ฅ ๋จผ์ ํ๋ ์ผ์ req.headers.authorization ์์ JWT๋ฅผ ๊ฒ์ฆํ๋ ๊ฒ์ ๋๋ค.๋ธ๋ผ์ฐ์ ์๋ค 'localhost:8002/v1/test' ๋ฅผ ๋ฐ๋ก ์ ๋ ฅํ ๋ ์ฐ๋ฆฌ๋ req.headers.authorization ์์ ํ ํฐ๋ฐ์ ๋ด์ ๋ณด๋ธ ์ ์ด ์์ผ๋, ๋ฐ๋ก ๋ฐ์ ์๋ ์๋ฌ์ฒ๋ฆฌ ์ฝ๋๋ก ๋์ด๊ฐ๊ฒ ๋๋ ๊ฒ์ ๋๋ค. (์๋ถ๋ถ)return res.status(401).json({ code: 401, message: '์ ํจํ์ง ์์ ํ ํฐ์ ๋๋ค.' })๊ทธ๋์ ์ ํจํ์ง ์์ ํ ํฐ์ด๋ผ๊ณ ๋จ๊ฒ ๋ฉ๋๋ค.
- 0
- 2
- 515
Q&A
์๋ฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
console.error(err); next(err);์ ๊ฒฝ์ฐ์๋ ์๋ฒ ๋ด๋ถ์์๋ง ์๋ฌ์ฒ๋ฆฌ๋ฅผ ํ์ง๋ง,res.status(50X).json()์ ๊ฒฝ์ฐ์๋ ์๋ฌ๋ฅผ ์๋ฌ ์ ๋ณด์ ํจ๊ป ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํฉ๋๋ค. ๋ท ๋ถ๋ถ ๊ฐ์ ๋ณด์๋ค ๋ณด๋ฉด ํด๋ผ์ด์ธํธ ์ฝ๋๋ฅผ ์ง๋ ๋ถ๋ถ (nodecat, lecture-call)์ด ์๋๋ฐ, ๊ทธ์ชฝ ์์์ ๋ฃ๋ค ๋ณด๋ฉด ๊ทธ ๋์ ์ฐจ์ด์ ๊ณผ ์ธ์ ๋ฌด์์ ์ด๋ป๊ฒ ์จ์ผ ํ๋์ง ์๊ฒ ๋์ค ๊ฒ๋๋ค.
- 0
- 2
- 153
Q&A
9์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธํ ํ๊ธฐ ์ง๋ฌธ์์ต๋๋ค.
class Hashtag extends Sequelize.Model { static init(sequelize) { Hashtag.init({์์ฒ๋ผ ์์ฑ์ ๋ถ์ด ์์ฑํ์ ์ฝ๋๋๋ก ๊ฐ์ ๋ ๋ฌดํ ์ฌ๊ทํจ์๊ฐ ๋ฐ์ํ๋ ์ด์ ๋, Hashtag.init() ํจ์๋ฅผ ์ ์ํ๋ ๊ณณ (2๋ฒ์งธ ์ค) ์์์ ๋ค์ Hashtag.init() ํจ์๋ฅผ ํธ์ถ (3๋ฒ์งธ ์ค) ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.super.init() ์ ํ์ฉํ๋ ๋ฐฉ์์ Sequelize 5๋ฒ์ ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๋๋ค. Sequelize 6 ๋ฒ์ ์ดํ๋ถํฐ๋ ๋ชจ๋ธ ์ ์ ์ Model.init์ ์ง์ ํธ์ถํ๋ ๋ฐฉ์์ด ๊ถ์ฅ๋๋, ์ ๋ก์ด๋์ ๋ฐฉ์๋๋ก ํ๋ ๊ฒ์ด ์ข์ ๋ณด์ ๋๋ค.
- 0
- 3
- 149




