Hi! 160

[NodeJS] express+mysql2+transaction 데이터 처리

맥북에 mysql 5.7 설치 후 진행했습니다. connection pool 생성 후 트랜잭션을 이용해 정상 처리시 commit을 에러시 rollback을.. 커넥션풀 생성 const mysql = require('mysql2/promise'); const { MYSQL_HOST, MYSQL_USER, MYSQL_PW, MYSQL_DB, } = process.env; module.exports = mysql.createPool({ host: MYSQL_HOST, user: MYSQL_USER, password: MYSQL_PW, database: MYSQL_DB, connectTimeout: 5000, connectionLimit: 30 //default 10 }) 먼저 데이터 insert router...

Node.js 2022.03.15

[NodeJS] express에서 mysql2 사용하기

이전 글(https://minu0807.tistory.com/125)에서 mysql npm을 사용해봤고, async/await을 사용하기 위해선 mysql2를 설치해야 한다고 해서 설치해봤다. 콜백 방식은 보기도 싫고, 작성하는 나도 싫기 때문에... 기존꺼에 작성한 건 바로 수정해봤다. 우선은 mysql2 설치 npm install mysql2 이후 지난번에 작성했던 mysql.js을 수정 const mysql = require('mysql2/promise'); const { MYSQL_HOST, MYSQL_USER, MYSQL_PW, MYSQL_DB, } = process.env; module.exports = mysql.createPool({ host: MYSQL_HOST, user: MYSQL_U..

Node.js 2022.03.10

[NodeJS] express에서 mysql 사용하기

뭐든 처음 베이스 세팅 과정이 어려운 것 같다. 회사에서 mysql을 버리고 elasticsearch를 사용한 지 몇 년 된 것 같은데 엘라스틱 쿼리에 익숙해지면서 mysql을 완전 잊어버린 것 같고, node로 mysql을 다뤄본 적이 없어 한 번 해보고 싶어서 해봤다. mysql은 맥북에 셋팅 했다. 참고 블로그 : https://twinparadox.tistory.com/619, https://tlo-developer.tistory.com/293) 그리고 connection pool 방식으로 진행하기로 했다. 먼저 mysql.js 라는 모듈용 파일을 생성 const mysql = require('mysql'); const { MYSQL_HOST, MYSQL_USER, MYSQL_PW, MYSQL_D..

Node.js 2022.03.09

[VueJS] vite에 axios, interceptors 적용하기

적용하는 방법은 vue-cli에서 했던 방법과 유사했던 것 같다. 먼저 axios 설치 npm install axios vite.config.js에 proxy 설정 import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' import { quasar, transformAssetUrls } from '@quasar/vite-plugin' export default ({mode}) => { process.env = {...process.env, ...loadEnv(mode, process.cwd())}; return defineConfig({ server: { proxy: { '/api': process.env.VITE..

VueJS/Vite 2022.03.03

[NodeJS] Error: Unable to load PFX certificate 에러

노드를 이용해 엘라스틱서치 클라이언트 연결 중 발생했던 에러 const es_client = new elasticsearch.Client({ hosts: process.env.ES_HOST }) 이런 식으로 사용했었고 기존에 문제 없이 잘 쓰던거라, 맥북 세팅 끝나서 프로젝트를 받아서 사용했는데 다음과 같은 에러가 발생했다. 찾아보니 노드 버전 16 이상부터는 추가 옵션을 넣어줘야했다. 맥북 세팅할 때 노드를 최신버전으로 설치해서 16으로 됐고, 문제 없이 쓰던 PC는 14버전이었다. 아래처럼 해주면 문제없이 된다. const es_client = new elasticsearch.Client({ hosts: process.env.ES_HOST, ssl:{ rejectUnauthorized: false, ..

Node.js 2022.02.23

m1맥북프로 2주간의 사용후기

2월 초쯤 맥북을 받고 세팅도 어느 정도 다하고 쭉 맥북을 사용했다. m1프로 13인치 램16기가 용량256기가 좋은 점도 있었고 아쉬운 점도 좀 있었지만 특정 몇 개의 좋은 점으로 맥북을 계속 이용하고 있다. 좋았던 점 1. 발열 내가 쓰는 범위 내에선 발열이 그냥 없다. (계속 맥북을 쓰게 된 이유 중 하나) 쓰던 윈도우 노트북도 사양이 내가 사용하는 기준에 비하면 절대 낮은 사양이 아닌데, 쓰다 보면 이유를 알 수 없는 발열이 꽤 많이 발생했었다. 코딩 공부 목적으로 샀던 거라 켜놓는 건 vscode, 크롬, 원노트, 노션을 켜고 이외에 상황에 따라 다른 프로그램들도 켰었다. 아무리 봐도 발열이 발생할 뭐가 없는데 좀 심했다. 그래서 노트북을 아무 생각 없이 이불 같은 곳이나 발열 구멍을 좀 막는 ..

ETC 2022.02.20

[VueJS] Vite에서 env 사용하기

2023-01-23 내용추가 최근 vite 4.0.0 버전으로 작업한게 있었는데 아래 글 본문 처럼 별도의 작업 없이 바로 .env 파일이 읽어지는게 확인 됐다. .env 파일안에 VITE_ 형식의 값을 넣으면 바로 import.meta.env로 불러올 수 있다. 혹시 몰라서 vite 3.1.0 버전의 프로젝트에서도 아래 작업을 지우고 해봤는데 정상적으로 불러와지는게 확인 됐다. 2023-02-06 내용추가 오늘 블로그 글 작성을 위해 vite 3.2.3버전의 프로젝트를 생성해서 확인해봤는데 별도의 작업없이 .env를 읽어지는게 확인됨 Vue2와 vue2 기반의 NuxtJS만 오랜 시간 사용을 하다 보니 vue3를 제대로 접해본 적이 없어 요즘 조금씩 알아보고 있다. 이번에는 웹프레임워크도 nuxt 말고..

VueJS/Vite 2022.02.19

윈도우노트북에 유용했던 단축키와 터치패드 그리고 기능들

대략 3년? 정도 사용한 노트북 asus 젠북(ux434) 13인치 인텔 i7 10세대 램 16기가 하드 1 테라 그래픽카드 mx240 공부용 노트북을 하나 장만하고 싶어서 13인치 모델들 중에서 사려고 했고... 이것저것 보다가 저 터치패드가 터치패드 기능만 되는 게 아니라 모니터도 되고, 다양한 기능을 제공하는 게 너무 신기해서 샀었다. (현재는 13인치는 더 이상 팔지 않는 듯하다.) 일단 본론부터 말하면 이 노트북을 쓰면서 마우스는 쓰지 않았다. 터치패드 쓸 때 느낌이 지금까지 쓰던 노트북들보다 사용감이 좋았던 것도 있긴 하지만, 윈도우 노트북에서 제공하는 터치패드 제스처와 각종 단축키들을 사용을 하다 보니 마우스는 딱히 필요가 없었다. 그리고 주변에 생각보다 사용 가능한 단축키나 제스처의 기능들..

ETC 2022.02.12

[NodeJS] ElasticSearchAPI putMapping 중 에러

엘라스틱서치 6.8 버전 사용했을 때 노드로 편하게 넣으려고 만들었던, 필드 추가 함수를 수정하던 중에 발행했던 에러... 너무 옛날에 만들었고 마음에 안들었던 소스라 수정을 좀 하고 있었다. 테스트 용으로 설치 해둔 엘라스틱서치 버전이 7.x 이기도 해서 수정 후 테스트 중이 었는데 자꾸 이런 에러가 발생했다. Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to true. include_type_name: true 옵션을 추가하면 끝이다. async function addFields (data) { let result = null; try { const idx = data.ind..

Node.js 2022.01.22

[NodeJS] node-schedule을 이용한 elasticsearch 인덱스 생성

지금 작성하는 글은 https://minu0807.tistory.com/117 [NodeJS] ElasticSearch API getTemplate(index_template) 인덱스 템플릿(index_template)? 인덱스를 생성할 때 맵핑 정보를 입력해서 생성해야 한다. 맵핑 정보 입력 없이 그냥 생성하고 데이터를 넣으면 필드 맵핑이 이상하게 만들어져서 데이터 조회나, 어 minu0807.tistory.com 이 글과 연관된 글이기도 하다. 위 글에 언급한 연도 단위로 인덱스를 사용하면서 발생한 문제를 해결하고자 node-schedule을 이용했다. 로직 구조는 간단하다. 1. 매일 00시00분01초에 moment를 이용해 다음날 날짜를 뽑는다. (2021-01-03일에서 2021-01-04일이 ..

Node.js 2022.01.06