일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- cors
- 위키백과
- 노드 윈스턴
- 3주차
- db
- OpenAPI
- MongoDB
- 2주차
- Transaction
- 스파르타코딩클럽
- nginx
- node winston
- Sequelize
- 개발일지
- 4주차
- JWT
- HTTPS
- 항해99
- Get
- 트랜잭션
- Node.js
- NoSQL
- 5주차
- 1주차
- 부트스트랩
- 웹 스크래핑(크롤링)
- SQL
- 비동기
- post
- 숙제
- Today
- Total
목록
728x90
전체 글 (110)
얼음꽃의 일지
api를 만들거나 혹은 다른 함수를 실행했을때 걸리는 시간은 Thunder Client, Postman등 결과 값에 나오는 시간으로 확인을 하게되는데요. 만약, api 안에 여러가지 함수가 존재하거나 반대로 전체 값이 돌아갈 때 각각 얼마나 시간이 걸리는지 알고 싶은 경우에는 저는 다음과 같은 방식을 사용합니다. // 함수가 있다고 가정하고 진행 function a() {}; function b() {}; function c() {}; console.time('총시간'); console.time('a시간'); a(); console.timeEnd('a시간'); console.time('a, b시간'); a(); b(); console.timeEnd('a, b시간'); console.time('a, b, ..
지난 글에서 sequelize transaction 을 직접 거는글을 올려놨었는데요. 반대로 commit, rollback 이 잘못넣었거나 오류가 생겼을때 현상을 알려드릴려고 합니다. 1. commit 후 rollback 이 붙어있는 경우 const db = require('../../모델 위치'); exports.test = async (req, res) => { const transaction = await db.sequelize.transaction(); await transaction.commit(); await transaction.rollback(); return res.json(200); }; 이런경우 나오는 에러는 다음과 같습니다. Error: Transaction cannot be rol..
보통 findAll 로 찾아와서 그것에 대한 length 를 구해가지고 총 개수 값을 찾는 경우가 있는데요 만약 findAll을 하는데 pagination 때문에 limit 가 걸려있으면 그 만큼의 개수를 가져올 수 밖에 없어서 limit가 최대 개수가 되는데 이때도, 총 개수를 가져오고 싶다면 findAndCounAll 을 쓰면 됩니다. const db = require('../../모델 위치'); const a = await db.table_name.findAndCountAll({limit: 50}); console.log(a.rows.length) // 가져온 개수 50 console.log(a.rows.count.length) // table 에 들어있는 총 개수 findAndCountAll 로 ..
회사에서 업무를 하다가 사업자등록번호를 확인해야하는 부분이 생겼는데요. 사업자 등록번호가 가짜인지 혹은 사용되고있는건지 확인하기 위해서 다음 사이트를 이용했습니다. https://www.data.go.kr/data/15081808/openapi.do 국세청_사업자등록정보 진위확인 및 상태조회 서비스 국세청에서 제공하는 사업자등록정보 진위확인 및 사업자등록 상태조회 API 서비스입니다. www.data.go.kr 회원가입을하고 목적만 밝히면 사용할 수 있는 API인데요. 여기서 승인을 받으면 encoding, decoding값을 줍니다. 거기서 encoding 값을 가지고 다음과 같이 진행하면됩니다. 전 있는지 파악하기 위해서 validate가 아닌 status api 를 사용했습니다. 추가적인 내용은 사..
express에서 unserialize후 필요한 값을 대입 후에 다시 serialize를 하는 경우 php와 똑같은 serialize 형식이 나타나지 않습니다. 그래서 사용하는 동안 해당하는 string, number, boolean 값 한에서 php가 사용할 수 있는 serialize 형식을 얻기 위해 만든 저의 함수 입니다. function serializeToPHP(value) { let session = ''; Object.keys(value).map((key) => { if (typeof value[key] === 'string') { // eslint-disable-next-line no-useless-escape session += `${key}|s:${value[key].length}:\"..
sequelize 설치 됐다는 가정 하에 진행 됩니다. sequelize를 이용하다가 sequelize로 하기에는 너무 힘든 쿼리거나 이미 짜여진 쿼리를 그대로 사용하고 싶을 경우 raw query를 그대로 사용해야하는데요. 이때 사용하는 방식입니다. const db = require('../../모델 위치'); exports.s = async (a, b) => { const query = `SELECT * FROM TABLE_NAME WHERE table_field_name between :a AND :B; return db.sequelize.query(query, { replacements: { a, b }, type: db.sequelize.QueryTypes.SELECT, raw: true, })..
sequelize 가 설치되었다는 가정하에 작성되었습니다. transaction을 직접 걸어두는게 아니면 DB 설정에 따라 자동적으로 잡힙니다. 보통은 Auto Commit 형태로 되어있습니다. 근데 Auto Commit이 아닌 직접 거는 상황을 보여드립니다. 일단 Transaction은 보통 수행하는 작업의 단위를 묶기 위해서 사용하죠. Transaction을 사용하게 됐을때 제가 느낀 장단점은 [장점] 1. 한번에 묶어서 수행하기 때문에 확인하기 편함 2. 서버나 타 이슈로 인해 에러 발생시 한꺼번에 롤백이 되기때문에 강제로 commit 될 위험 없음 3. 원하는 곳에서 commit 할 수 있도록 설정 가능 [단점] 1. transaction 적용하면서 속도가 조금 느려짐 -> 속도는 transact..
sequelize 설치가 되어있다는 가정 하에 제가 자주 쓰던 sequlize op 총 형태 모음집 입니다. const {Op} = require('sequelize'); const db = require('../../?'); // 모델있는 위치 const arr = [1,2,3,4,5]; // order를 형성하기 위한 배열 let offset = 0; if (page > 1) { offset = (page - 1) * limit; } const a = await db.table_name.findOne({ attributes: ['table_field_name', // 특정 필드명 db.sequelize.fn('사용할 sql 함수', db.sequelize.col('table_field_name'), ..