본문 바로가기
반응형

개발 Study/Node13

[Sequelize/Node.js] commit has been called on this transaction 에러 해결 'commit has been called on this transaction' 에러 해결 1. Error 메시지 단순히 Flag 값 하나를 업데이트 시켜서 저장하는 함수를 만들었는데 다음과 같이 에러가 났다. Sequelize의 비동기 transaction을 이용하여 업데이트 및 저장 하는 함수인데 뭐가 잘못된건지 찾느라 헤맸다. 2. 해결 방법 아래와 같이 두 코드를 비교해보면 id로 공고 정보를 찾아 del_status라는 flag 값을 변경 후, save()함수를 이용하여 저장해야하는데 await 을 추가해야 순차적으로 실행되므로 다음과 같이 수정했다. //문제 코드 const deleteRecruit = async (recruit_id : number) => { const result = awa.. 2023. 1. 31.
[Node.js] 공공 오픈 API 이용하기 - 지하철 노선 전체 정보 가져오기 지하철 노선 전체 정보 오픈 API 1. API 신청하기 오픈API를 여러 방면으로 찾아봤는데 내가 원하는 데이터는 지하철 노선 전체 정보와 노선에 따른 역 정보였기 때문에 하단 링크에 있는 API를 사용하게 되었다. https://data.kric.go.kr/rips/M_01_02/detail.do?id=431&service=trainUseInfo&operation=subwayRouteInfo 철도 데이터 포털 열차이용정보 도시철도 전체노선정보 일반/고속철도 제공기관 : 전국도시철도운영기관등록일 : 2019.05.13활용신청 건수 : 230건 도시철도 전체노선정보 활용신청 기본정보 서비스 설명 도시철도 data.kric.go.kr 활용 신청 버튼을 클릭하고 요청하는 정보를 입력한 후 등록 버튼을 누르면.. 2022. 12. 16.
[Sequelize] ForeignKey로 Cascade delete 적용하기 Sequelize Cascade Delete 적용 1. Model Column에 외래키 설정 자식 테이블에서 외래키로 설정된 Column에 reference 옵션으로 아래와 같이 외래키를 설정해주고 onDelete 옵션에 "CASCADE"를 설정해 준다. export class PersonB extends Model { @Column({ type: DataTypes.INTEGER, primaryKey:true, references: { model:'member-backup', key:'member_id' }, onDelete: "CASCADE"}) member_id!: number; //회원id @Column({ type: DataTypes.STRING(20), allowNull: true}) name!.. 2022. 12. 15.
[Node.js] 공공 오픈 API 이용하기 - 사업자 휴/폐업 실시간 조회 공공데이터 포털 오픈 API 사용법 현재 구현 중인 프로젝트에서 사업자 등록 번호를 입력하면 해당 사업자가 사업을 계속하고있는지 휴업인지 폐업인지 여부를 알아야하는 기능이 필요했다. 마침 검색해 보니 정부에서 국세청 정보를 무료로 오픈API를 이용하여 실시간 조회를 가능하게 했다는 기사를 보고 직접 구현해보기로 했다. 1. 공공데이터 포털 가입 및 API 활용신청 https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15081808 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Da.. 2022. 10. 20.
[Node.js] 비밀번호 암호화(bcrypt HASH) bcrypt를 이용한 비밀번호 암호화 1. bcrypt 란? node에서 비밀번호와 같은 보안이 필요한 데이터를 hashing 하는데 유용한 모듈이다. 요즘은 그냥 암호화가 아니라 salt 를 이용한 기법으로 암호화를 하는데 이번 글에선 salt를 추가한 암호화에 대해서 다룬다. Salting은 같은 입력값에 대해 동일한 해쉬값을 출력하는 문제를 방지하기 위해 난수를 추가하여 해시함수에 집어 넣는 개념이다. "비밀번호 + Salt 값"의 해시가 함께 DB에 저장된다. $npm install bcrypt //typescript 이용시 아래도 추가 설치 $npm install @types/bcrypt 2. 암호화 파라미터로 받은 password를 saltRound를 10회를 돌린 후 마지막 값을 집어 넣는다.. 2022. 10. 6.
[SocketIO/WebRTC] 줌 클론 코딩(2) - WebRTC로 카메라 연결하기 노마드 코더 [Javascript] 기초 - 줌 클론 코딩 코딩쟁이들이라면 들어봤을 법한 유튜버 '노마드 코더'의 Javascript 무료 강의로 아래 사이트에 들어가면 볼 수 있다. https://nomadcoders.co/noom 줌 클론코딩 – 노마드 코더 Nomad Coders WebSockets, SocketIO, WebRTC nomadcoders.co 지난 번 socket.io를 이용하여 채팅까지 완성한 후, 이후 내용은 WebRTC를 이용하여 실제로 웹캠을 연결하여 화상 채팅을 구현하는 것이다. 1. WebRTC란? Peer-to-Peer 방식으로 브라우저나 단말 간에 데이터를 주고받는 기술의 웹 표준을 말한다. WebRTC (Web Real-Time Communication)은 웹 애플리케.. 2022. 8. 23.
[SocketIO/WebRTC] 줌 클론 코딩(1) - Socket.io로 채팅 만들기 노마드 코더 [Javascript] 기초 - 줌 클론 코딩 코딩쟁이들이라면 들어봤을 법한 유튜버 '노마드 코더'의 Javascript 무료 강의로 아래 사이트에 들어가면 볼 수 있다. https://nomadcoders.co/noom 줌 클론코딩 – 노마드 코더 Nomad Coders WebSockets, SocketIO, WebRTC nomadcoders.co 코로나로 인해 비대면 미팅이 늘어난 시점에 Zoom 은 샛별같이 등장하여 화상 채팅 시장을 장악했다. Socket.io를 이용하여 실시간 채팅 및 스트리밍 영상을 주고받을 수 있는 화상 채팅 서비스를 만들어보는 강의다. 전에 하다가 중단한 실시간 채팅 구현하기에서 이미 Socket.io를 이용하여 구현했지만 제대로 강의를 듣고 기초부터 다시 다져.. 2022. 8. 22.
[Error] npm i @socket.io/admin-ui 설치 에러 해결 npm i @socket.io/admin-ui 에러 처리 socket.io 관련 모든 페이지를 뒤졌지만 아래처럼 입력해서 설치하라고만 나오고 에러에 대한 설명이라던가 에러가 났다고 나오는 글들이 없어 이렇게 남김. 자꾸 '@' 표시를 연산자로 인식해서 저런 에러가 나는데 이 글 저 글 찾아보다가 결국 찾아낸 해결 방법은 $npm i "@socket.io/admin-ui" 위와 같이 "" 큰 따옴표 안에 넣어주고 입력하는 방식이다. 다음에 똑같은 에러가 났을 경우 참고할 것!!! ㅎㅎ 2022. 8. 19.
[Node.js/Mongoose] 실시간 채팅 구현하기 - CRUD API 생성하기 및 Express 라우터 사용 오늘은 라우터를 사용하여 외부에서도 API를 통해 DB에 데이터를 Create/Read/Update/Delete 할 수 있는 기능을 구현하여 Postman으로 테스트하는 걸 해보겠다. 소스는 이런식으로 구성했다. db 폴더 안에 모델들을 넣어 놓고, index에서 db 연결을 해준다. 각 모델에 해당하는 controller들 생성하여 CRUD 기능들을 구현하였다. route.js 에서 express router로 라우터를 구현하였다. 1. Model 생성 총 4가지 모델을 생성했으며 생성 방법은 아래 글에 나와있다. 2022.07.12 - [개발 Study/Node, js, react] - [Node.js/MongoDB] 실시간 채팅 구현하기 - MongoDB 설치, 연동 및 모델 생성 { if (!re.. 2022. 7. 13.
반응형