게시글
질문&답변
윈도우 파일탐색기 주소창에서 cmd를 입력할 경우 해당 경로로 바로 cmd를 열 수 있습니다.
오오
- 2
- 2
- 45
질문&답변
트랜잭션 기능을 서비스 함수로 구현하는 방법
트랜잭션 기능을 서비스로 구현하실 때,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
- 261
질문&답변
채팅방을 만든 브라우저에서 모두 나갔을 경우 문의드립니다.
크롬 브라우저에서는 새로고침을 해야 제거가 되는데, 엣지에서는 새로고침을 하지 않아도 제가가 되는 이유를 알 수 있을까요??
- 0
- 2
- 315
질문&답변
몽구스 쿼리 remove 에러 문제
TypeError: Room.remove is not a function 에러는 MongoDB와 Mongoose에서 사용되는 모델 메서드의 버전 변경으로 인해 발생합니다. Mongoose 6.x 이상에서는 Model.remove() 메서드가 제거(deprecated) 되었으며, 대신 Model.deleteOne() 또는 **Model.deleteMany()**를 사용해야 합니다.라고 합니다..
- 0
- 2
- 322
질문&답변
morgan모듈이 cors 문제가 발생할때만 OPTIONS 메서드가 로깅이 되는 이유가 궁금합니다.
외부 브라우저에서 서버로 교차 출처 요청을 보낼 때, 브라우저는 CORS 정책에 따라 필요한 경우에만 OPTIONS 요청(Preflight 요청)을 보냅니다. CORS 정책이 적용되더라도 Preflight 요청이 필요한 조건을 충족하지 않으면 OPTIONS 요청은 보내지 않습니다. 또한, 모든 요청을 정확히 확인하려면 morgan 보다는 브라우저의 개발자 도구를 사용하는 것이 더 적합합니다. 개발자 도구에서는 OPTIONS 요청 여부와 CORS 정책의 영향을 명확히 확인할 수 있습니다.
- 0
- 2
- 73
질문&답변
ws 프로토콜 연결시 사이트 연결할 수 없음 메세지가 나오고 페이지 호출이 되지 않습니다.
지금 주소 창에서 보시면 http:// 가 아닌 ws:// 로 하고계십니다. http로 접속해야 합니다.
- 0
- 3
- 309
질문&답변
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
- 432
질문&답변
에러 처리 방법
console.error(err); next(err);의 경우에는 서버 내부에서만 에러처리를 하지만,res.status(50X).json()의 경우에는 에러를 에러 정보와 함께 클라이언트에게 전송합니다. 뒷 부분 강의 보시다 보면 클라이언트 코드를 짜는 부분 (nodecat, lecture-call)이 있는데, 그쪽 영상을 듣다 보면 그 둘의 차이점과 언제 무엇을 어떻게 써야 하는지 알게 되실 겁니다.
- 0
- 2
- 93
질문&답변
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
- 86
질문&답변
app.js 에서 sequelize 를 가져오는 부분이 models/index.js 있는 sequelize 를 가르키는게 맞나요?
const { sequelize } = require('./models');require 함수에서./models 까지만 경로를 지정해도, 자동으로 models 폴더 안에 있는 index.js 라는 이름의 파일을 가져오는 것으로 알고 있습니다.
- 0
- 2
- 163