개발자 Q&A

토픽

인기 태그

#nodejs

기술

mongoose 참조 관련 질문입니다. (수정)

nodejs, mongoose, mongodb 그리고 데이터 확인용으로 mongodbCompass를 사용중임을 알립니다. 현재 A,B 컬렉션이 있고, A 가 B를 참조하고 있습니다. B컬렉션에서 데이터를 삭제하면 B컬렉션에서 삭제되고 로그를 찍어보면 정상적으로 A컬렉션에서도 참조하고 있는 B 데이터가 빠지는 걸 확인했는데 mongodb Compass에서는 바뀌지 않습니다. 원래 mongodb compass에서 느리게 처리되는 건지 살짝 멘붕이 와서 질문드립니다.. -------------------------------- 현재까지 실험결과 B컬렉션 데이터 2개 추가 시 -> A 컬렉션에 대해 findById 결과 --> B 데이터 2개 추가 -> A 컬렉션에 대해 findOne({_id:_id}) 결과 --> B 데이터 2개 추가 B컬렉션에 대해 데이터 1개 삭제시 -> A 컬렉션에 대해 findById 결과 --> B 데이터 1개 , (1개 삭제) -> A 컬렉션에 대해 findOne({_id:_id}) 결과 --> B 데이터 2개 (삭제 x) -> mongoCompass -> B 데이터 1개 , A가 참조하는 B 데이터 2개 (삭제 x) 추가로 B컬렉션 데이터 1개 추가 시 -> A 컬렉션에 대해 findById 결과 --> B 데이터 2개 , (1개 추가) -> A 컬렉션에 대해 findOne({_id:_id}) 결과 --> B 데이터 2개 (이전 1개 삭제후 새로운 참조 데이터 추가 됨 ) -> mongoCompass -> B 데이터 2개 , A가 참조하는 B 데이터 2개 (이전 1개 삭제후 새로운 참조 데이터 추가 됨) stackoverflow 와 mongoose 공식문서를 참고했습니다만 이유는 잘 모르겠습니다.. 코드도 같이 첨부하겠습니다.

답변 0

4일 전 • 조회 16

기술

AWS Beanstalk 배포 하기 전에 신경써줘야 할 것이 있나요 ?

현재 nodejs로 백엔드를 구성하고 EB에 배포하는데 몇 가지 오류가 생겨서 질문 드립니다. 프로젝트 구조는 다음과 같습니다. -customer └ .gitignore └ .dockerignore └ src ( 백엔드 코드 ) └ .gitignore └ Dockerfile └ Package.json -product └ customer 와 동일 -shopping └ customer 와 동일 -proxy └ Dockerfile docker-compose.yaml 리전 ap-northeast-2(seoul region) 로컬에서 빌드하고 작동하는 거 확인 후 위 코드를 모두 압축해서 EB에 올렸습니다. EB에 올리기전에 vpc , igw, 등등 미리 생성해줘야 할 게 있나요? 추가로 .gitignore 같은 파일도 같이 올려도 되나요 ? ( 초보라서 질문의 질이 떨어질 수 있지만 고수분들의 너그러운 양해를 부탁드립니다 .ㅠㅠ ) 에러 로그를 보면 1. ELB Fail -> VPC has no internet gateway 2. Stack named 'awseb-e-33wucpgpey-stack' aborted operation. Current state: 'CREATE_FAILED' Reason: The following resource(s) failed to create: [AWSEBV2LoadBalancer, AWSEBInstanceLaunchWaitCondition] 3. LaunchWaitCondition failed. The expected number of EC2 instances were not initialized within the given time. Rebuild the environment. If this persists, contact support.

답변 1 • Up 1

6일 전 • 조회 49

기술

aws lambda에서 nodejs promise 비동기 호출하는 방법

안녕하세요~ node.js 14를 aws lambda로 구동시켜서 작업 중에 있는데요. 배치 작업을 하나 만들었는데, 코드 중에 비동기로 다른 서비스를 호출해도 되는 요청이 있어서 await을 걸지 않았는데 로그를 보니 해당 코드가 요청하기 전에 람다가 꺼지는 것 같아서요. 혹시 이유를 아시는분 계신가요?

답변 2 • Up 1

12일 전 • 조회 74

기술

nodejs driver로 replicaSet option 변경하기 도움 부탁드립니다.

아래 코드는 https://medium.com/@cramirez92/build-a-nodejs-cinema-microservice-and-deploying-it-with-docker-part-1-7e28e25bfa8b 여기에서 공부하다가 나온 코드입니다. getMongoUrl을 찍으면 다음과 같이 나옵니다. "mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/movies" 현재는 해당 코드가 deprecated 되어서 실행이 전혀 안되서 현재버전으로 바꿔서 짜보고 싶은데 옵션 넣어주는 코드가 어떤 의미 인지 모르겠습니다. 도움주시면 정말 감사드리겠습니다. mongodb documentaion 링크도 같이 남겨드립니다. https://www.mongodb.com/docs/v6.0/replication/ https://mongodb.github.io/node-mongodb-native/4.13/index.html 추가로 const MongoClient = require('mongodb'); const {MongoClient} = require('mongodb'); 의 차이도 궁금합니다.

답변 1

12일 전 • 조회 43

기술

영화관 처럼 좌석 예약 기능은 어떻게 구현하나요?

개인 프로젝트 중에 영화관 좌석 예약처럼 한 사용자가 고른 값을 다른 사용자가 동시간에 사용하지 못하게 하려면 백엔드를 어떻게 구현해야하나요? 단순히 좌석을 선택했을때 백엔드로 요청을 보내서 좌석 상태 (예약됨, 예약안됨)를 바꿔주면 되나요? 동시에 예약하기 페이지를 진입하면 사용자 A와 B 모두 a 좌석 상태가 예약 안됨일때인데, 사용자 A가 a 좌석 상태를 예약됨으로 변경하면 사용자 B에게는 여전히 a 좌석이 예약안됨으로 보일 것 같아서요. 제가 원하는건 사용자 A,B가 동시에 접속해서 좌석 a가 빈 자리여도 둘 중 아무나 a 좌석을 예약하면 나머지 한명에게는 a 좌석이 예약됨을 보여주고 싶습니다. 참고로 사용하고 있는 DB는 postgresql입니다. 서버는 노드구요. 이런 기능은 어떻게 구현하는지 궁금해서 질문 남깁니다.

답변 2 • Up 3

13일 전 • 조회 146