일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- OpenAPI
- Sequelize
- 부트스트랩
- 웹 스크래핑(크롤링)
- 4주차
- node winston
- 비동기
- 항해99
- 노드 윈스턴
- db
- NoSQL
- 스파르타코딩클럽
- Get
- HTTPS
- SQL
- 숙제
- nginx
- MongoDB
- 1주차
- 5주차
- post
- 2주차
- 트랜잭션
- 위키백과
- Node.js
- 개발일지
- 3주차
- cors
- JWT
- Transaction
- Today
- Total
목록
728x90
전체 글 (110)
얼음꽃의 일지
로그인을 해놓고 이리저리 사이트를 많이 돌아다니가다 로그인했던 사이트로 돌아오니 로그인이 풀려있는 경우가 있었습니다. 처음에는 무엇인가 했는데 알고보니 쿠키에 문제가 있었던 점을 파악했습니다. 기본적으로 브라우저 별 쿠키 수가 정해져 있는데요. 그 내용은 다음과 같습니다. 즉, 일정 개수의 쿠키가 넘어가게되면 이전 쿠키의 모습이 사라지는지 가지고 있던 쿠키가 없어지면서 로그인이 풀리는 경우가 있게 되었습니다. 혹시라도 로그인이 자주 풀리면 쿠키부터 확인해보세여!
보통 sequelize 오류는 여러가지 종류가 있지만 그 중 보통 일어나는 오류를 얘기하려고 합니다. 1. ConnectionAcquireTimeoutError [SequelizeConnectionAcquireTimeoutError]: Operation timeout -> 연결하고자 하는 값이 없을 때 생깁니다. 보통 pool에서 빼와야하는데 가져올 수 없는 경우 발생합니다. 그렇다고, 막무가내로 pool 개수를 늘리는 방법도 좋지는 않습니다. 어디서 연결을 많이 잡아먹는지를 체크 해봐야합니다. 2. Lock Wait Timeout Exceeded Try Restarting Transaction -> 앞에서 사용하고 있는 transaction이 lock을 걸어서 사용하고 있는데 그 시간이 너무 길어서 뒤..
이번에는 router에서 미리 걸러주는걸 도와주는 효율적인 라이브러리를 소개하겠습니다. 바로 express-validator 입니다. express-validator를 라우터에서 값을 받을 때, 쉽게 valid 해주는 프로그램을 의미합니다. 예를 들어서 // npm intstall express-validator const { param, body, query } = require('express-validator'); router.route('/abc').post([ body('a').notEmpty().withMessage('필수값').trim(), body('b').optional(), body('c').default('1').optional(), body('d').notEmpty().withMes..
간혹가다 api 가 심하게 요청되는 경우가 있습니다. 그런 경우에는 제한을 둬야하는데요 제한을 쉽게 둘 수 있도록 해주는 라이브러리가 존재합니다. npm i stall express-rate-limit 를 설치하고 const limitIp = require('express-rate-limit'); const express = require('express'); const app = express(); const limiter = limitIp({ windowMs: 1 * 60 * 1000, // 1 minutes max: 1000, message: '오류 메세지', }); app.use(apiLimiter); app.js 파일에서 저렇게 사용하게되면 설정한 시간동안 max 값이 넘게되는경우 오류 메시지가..
보통 IP를 가져오게 되면 Header 에 있는 x-forward-for 라는 곳에서 찾아가지고 가져오게 되는데요 그럼 이럴때마다 저거를 찾아서 적어줘야하기 때문에 번거로움이 발생하기 떄문에 쉽게 가져오는 라이브러리를 사용합니다. npm install request-ip --save 설치 후 다음과 같이 사용합니다. const ip = require('request-ip'); exports.a = async(req, res) => { const clientIpv6 = req.ip; // 이러면 IPv6 방식; const clientIpv4 = req.ip.replacee('::ffff:', ''); // 이러면 IPv4 방식 } 을 이용해서 가져와가지고 쉽게 사용 할 수 있습니다. https://www...
Sequelize에서 간단하게 관계 설정 하는 법을 적으려고 합니다. 기본적인 코드는 다음과 같습니다. // 모델 안에서 진행한다는 가정하에 진행합니다. table_name.model.js table_name.associate = (models) => { table_name.hasMany(models.other_table_name, { foreignKey : "fields", sourceKey : "fields", }); } other_table_name.model.js other_table_name.associate = (models) => { other_table_name.belongsTo(models.table_name, { foreignKey : "fields", targetKey : "field..
toss에 요청해서 연결해서 받는 키값은 있다는 전제하에 진행됩니다. 첫번째로 프론트에서 toss 를 연결해서 카드 입력 후 오는 authKey값을 받아서 카드 등록을 진행합니다. const superagent = require('superagent'); const billingKey = await superagent .post('https://api.tosspayments.com/v1/billing/authorizations/issue') .set( { Authorization: `Basic ${Buffer.from( `${토스키}:`, 'utf-8', ).toString('base64')}`, }, { 'Content-Type': 'application/json; charset=UTF-8', }, )..
간단한 superagent 사용법 입니다. Axios 보다는 이걸 사용하고있습니다. npm install superagent const superagent = await require('superagent'); const a = await superagent.get('주소') .set('header', '정보') .query({쿼리 정보}) const a = await superagent.post('주소') .set('header', '정보') // content-type, authorization 등등 .send({보낼 정보}) 이런 형식으로 바로 잡아서 사용 할 수 있습니다. 어떤면으로 보면 작성할 수 있는 부분이 간결하고 쉽더군요. 추가 내용들은 다음을 참조 하시면 됩니다. https://www.n..