일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- TypeScript
- jsx
- sass
- State
- ES6
- mapGetters
- MySQL
- App.vue
- CSS
- vuex
- 쉬운설명
- event
- Vue transition
- Vue.js
- nodejs
- Wecode
- express
- 댓글달기
- 리액트
- storybook
- HOC
- 자바스크립트
- JavaScript
- v-html
- webpack
- react
- 자료구조
- scss
- input
- Vue
- Today
- Total
목록프로그래밍/NodeJS (12)
익명의 개발노트
무분별한 api 호출을 제한하기 위해 express-rate-limit 라이브러리를 설치해보자 npm i express-rate-limit RateLimit 미들웨어를 라우터에 넣으면 라우터에 사용량 제한걸림. const jwt = require('jsonwebtoken'); const RateLimit = require('express-rate-limit'); exports.apiLimiter = new RateLimit({ windowMs: 60 * 1000, // 기준시간 max: 1, //허용횟수 delayMs: 0, //호출간격 //제한 초과시 콜백함수 handler(req, res) { res.status(this.statusCode).json({ code: this.statusCode, //..
1. passport관련 패키지 설치 npm i passport passport-local passport-kakao bcrypt 2. app.js와 미리 연결 //app.js (다른 모듈 import) const passport = require('passport'); const passportConfig = require('./passport'); //passport 폴더 안에 index.js //express-session 설정 하단부에 passport session 설정해준다. app.use(session({ resave: false, saveUninitialized:false, secret: process.env.COOKIE_SECRET, cookie:{ httpOnly: true, secure..
패키지를 npm에 배포하기 위해서는 npm 계정이 필요하다. 아래의 명령어를 터미널에 입력하면, npm adduser Username, Password, Email을 npm에 가입한 정보를 그대로 입력하도록 한다. 실제로 임시 파일을 만들어서 배포해보자. 아래와 같이 package.json에서 진입점을 위해서 index.js 파일을 만들어주고, 패키지명을 작성한다. { "name": "calculator-11024", //배포할 패키지명 "version": "1.0.0", "description": "", "main": "index.js", //진입점 "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "l..
Node JS에는 인증 관련 모듈인 Passport가 있다. 통상 passport, passport-local, express-session, flash 를 한 셋트로 사용한다. npm install passport passport-local express-session connect-flash --save 1. passport는 인증관련된 모듈을 처리 2. passport-local 은 페이스북이나 트위터 같은 소셜 로그인 말고 일반 로그인을 처리한다. 3. session은 session 관련된 부분 처리해준다. 4. flash는 에러 메세지를 Redirect하는 과정에서 쉽게 전달해주는 모듈이다. 동작원리는 passport를 이용해서 인증처리를 실행하는 LocalStrategy를 작성하고, 여기서 작..
1. 암호화 방법에는 크게 단방향과 양방향 암호화로 구분한다. 1) 단방향은 한번 암호화 하면 복호화 할 수 없다. 2) 양방향은 비대칭형과 대칭형으로 나뉜다. 2. 고려사항 1) 암호화 모듈 종류는 여러개가 있다. md5 , sha256, sha1, crypto, bcrypto 등등/ 2) 이중에서 해커에게 뚤린적이 있는 md5, sha1 모듈은 사용하지 않는다. 3. crypto는 노드 6버전부터 내장모듈로 변경 되었다. 1) crypto에는 pdkdf2Sync라는 메소드를 사용했다.(사용법이 매우 간결하다) pdkdf2Sync는 pdkdf2의 향상된 버전. 둘의 차이점은 pdkdf2은 인자값으로 콜백함수를 받을 수 있고, pdkdf2Sync는 5가지 밖에 받을 수 없음. 비밀번호 저장시 반드시 to..
CORS : 프론트엔드 주소와 백엔드주소가 다른 상태에서 프론트가 백엔드의 api를 호출하면 브라우져에서 보안때문에 차단하는 현상 1. 해결방법. 1) cors를 설치 후 미들웨어 설정을 해준다. npm install cors 2) app.js const cors = require('cors'); app.use(cors());
라우팅이란 ? 화면과 데이터를 요청에 맞게 넘겨주는 컨트롤러 역할을 함. 1. 라우팅 처리를 함에 있어서, 방법은 여러가지이다. 1) app.js에서 라우팅을 처리해주는 방법. 2) router 폴더 생성 후 url별로 파일을 만들고 처리해주는 방법(root 라우터는 app.js) 3) 2번 사항 + root 라우터까지 router 폴더에 작성하는 방법. ( 가독성이 젤 좋음) * 개인혼자 플젝 진행할 때, 라우팅 처리 변경하면 기존에 데이터 넘어오는 부분의 주소값도 변경해주어야함.(html파일) * 라우터 처리에서 이해하기 어려웠던 점 1) 주소값이 너무 많아서 헷갈리기 마련.. => 부모-자식 관계라고 보면 이해하기 쉽다. ex) localhost:4000/email/form localhost:400..
1. mysql 모듈 설치 npm install mysql 2. 모듈 불러와서 결합하기. var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', port : 3306, //mysql 기본포트, 서버 포트쓰면 안된다! user : 'root', password : '********', database :'jsman' //데이터베이스 어떤걸로 쓸껀지. }); connection.connect(); connection.query('select * from user', function(err, rows, fields){ if(!err){ console.log('The solution is: ', rows..
node.JS로 개발한다면 아래 셋 중에 하나는 반드시 사용한다. 1. express 2. koa 3. hapi 1. Express 장점 : Node.js 프레임워크 중 커뮤니티가 가장 큼, 서버 쉽게 실행/ 운영가능, 내장된 라우터로 코드 재사용가능. 단점 : 수작업이 많음. 내장된 에러핸들링 없어서 미들웨어 잃어버릴 수 있음. 문제에 대한 접근법이 여러가지임. 메모리를 많이 먹음, async/ await을 정식지원하지 않아서 오류처리하는 부분은 편법으로 사용해야함. 2. Koa 장점 : 메모리를 덜 먹고 표현력이 좋다. 미들웨어 작성이 쉽다. 개발자가 필요한 미들웨어만 구성해 사용할 수 있음. ES6를 도입하고 있어 ES6문법사용가능, async/ await 정식제공 단점 : 불안정하고 많은 양의 개..
NPM이란 무엇인가?? Node Package Manager 라고 부른다. 한마디로 node 로 개발에 필요한 모든 것을 NPM이라는 창고에서 보관을 하고 있다. 사용자는 개발에 필요한 부분들을 창고에서 꺼내서 내 컴에 설치해서 쓰는 식이다. 예를 들면, 서버를 만들어야한다. 좀 더 쉽게 만들고 싶다면 Express를 가져다 쓰면 되고. 추가적인 메소드같은 것을 쓰고 싶으면 underscore를 가져다 쓰면된다. 별거 없다. 조낸 큰 생태계라고 보면 좋을 듯.