일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- linux시간으로 변경
- influxdb 설치
- regex_search
- 정규식 컴파일
- c3 축 없애기
- 1697
- c3 초
- c++ 정규식
- python popen
- c3 step graph
- selinux port 등록
- snmp
- semanage
- grafana dashboard
- gcc regex
- c3 축 가리기
- InfluxDB
- subporcess path
- 백준
- g++ 업데이트
- CentOS7
- snmp test
- python os
- centos pyhon 설치
- python subprocess
- c3 second
- gcc 업데이트
- telegraf
- 정규식 활용
- 정규식 문자열 출력
- Today
- Total
목록NodeJS/생활코딩 (48)
리셋 되지 말자
쿠키 읽기 cookie.js var http = require('http'); var app = http.createServer(function(request, response){ console.log(request.headers.cookie); response.writeHead(200, { 'Set-Cookie' : ['yummy_cookie=choco', 'tasty_cooke=strawberry'] }); response.end('hello world'); }); app.listen(80); request.headers에 있는 cookie를 출력해본다. 쿠키가 출력되는 것을 확인할 수 있다. 쿠키를 다루는 npm 모듈 (www.npmjs.com/package/cookie) 설치한다. cookie.j..
쿠키 생성 전 var http = require('http'); var app = http.createServer(function(request, response){ // response.writeHead(200, { // 'Set-Cookie' : ['yummy_cookie=choco', 'tasty_cooke=strawberry'] // }); response.end('hello world'); }); app.listen(80); 이렇게 간단히 nodejs 웹서버를 구성하고, 실행한 뒤 개발자 도구의 Network 탭을 확인해본다. 별다를게 없는 get방식의 요청과 응답이다. cookie.js var http = require('http'); var app = http.createServer(func..
보안 (expressjs.com/en/advanced/best-practice-security.html) 예전 버전을 사용하지 마라 TSL (https, SSL)을 사용해라 helmet을 사용해라 npm install --save helmet helmet 설치 var helmet = require('helmet') app.use(helmet()); helmet 사용 cookie를 안전하게 사용해라 방문자를 식별하기 위해 cookie가 사용된다. (인증에서 핵심으로 사용됨) dependency를 안전하게 관리해라 npm audit 위 명령어를 사용하면 검사를 해준다. 아래 캡처사진은 위의 명령어를 실행한 결과이다. 아래에 snyk라는것도 있는데 이건 생략
안되던 주소 express의 클린 url 체계 방식으로 form이나 링크 이동을 클린 url로, 즉 상세 페이지 보기에서 'localhost/page/:pageId' 로 이동하도록 했는데, 글 생성 및 update도 'localhost/page/create'와 'localhost/page/update'로 하고 싶었는데 변경하면 안되었다. 안된 이유는 미들웨어 'localhost/page/:pageId'를 처리하는데, /page/create를 입력해버리면 pageId인 상세페이지 보기로 인식하기 때문이다. 해결방법은 간단한데, '/page/create'를 처리하는 미들웨어를 '/page/:pageId'를 처리하는 미들웨어보다 위쪽에 두는 것이다. 링크의 이동하는 경로와 미들웨어의 순서를 변경하여 해결했다...
404 not found 처리 (expressjs.com/ko/starter/faq.html)이 사이트에 따라서, 미들웨어의 마지막에 아래의 코드를 추가한다. app.use(function(req, res, next) { res.status(404).send('Sorry cant find that!'); }); 미들웨어는 순차적으로 실행되기 때문에, 해당 미들웨어를 만났다는 것은 이전 미들웨어들에 대응하는 요청을 처리하지 못했다는것을 뜻하므로 마지막에 선언해준다. 나머지 오류 처리 app.use(function (err, req, res, next) { console.error(err.stack) res.status(500).send('Something broke!') }) 404에러 처리 미들웨어 다음..
미들웨어 만들기 (expressjs.com/en/guide/writing-middleware.html)공식 사이트의 middleware function mylogger 예시를 보면 미들웨어를 만드는 법과 사용법을 간단하게 알 수 있다. 미들웨어 코드 code app.use(function(req, res, next){ db.query('SELECT * FROM topic', function (error, topics) { req.topics = topics; next(); }); }); 미들웨어는 함수이며, app.use의 인자로 사용할 수 있다. 이때 함수는 request, response, next를 인자로 가지며, next()는 다음 미들웨어를 가르킨다고 이해하면 될것 같다. 실제 적용 //상세 보..
글 작성 아무거나 양이 많은 글을 복사해서 게시물을 하나 작성한다. 우측 하단에서 전송된 데이터 량이 22.7kB인 것을 확인할 수 있다. 미들웨어를 이용한 압축하기 nodejs 웹서버에서 특정 방식으로 압축을 진행한 뒤, 데이터를 웹 브라우저에 전송할 때 압축된 데이터와 함께 어떤 방식으로 압축했는지를 같이 보낸다. 그러면 웹 브라우저는 해당 방식으로 압축을 해제한 뒤 사용한다. 압축을 하고, 압축을 푸는 비용이 네트워크 전송 비용보다 저렴하다고 한다. 압축을 하는 과정과 압축을 푸는 과정을 미들웨어가 '대신'해준다. compression 설치 (compression이 한국말로 압축이라고 한다.) (expressjs.com/en/resources/middleware/compression.html)이 사..
body parser란? 서드파티 미들웨어(공식적으로 지원하지 않고 다른 이용자가 만든거)의 한 종류로 데이터를 받을 때, 코드를 간결하게 짤 수 있도록 도와준다. post 데이터 받기 기존의 request.on 사용 app.post('path', (req, res)=>{ var body=''; req.on('data', (data)=>{ body+=data; }); req.on('end', ()=>{ console.log(body); res.send('결과'); }); }); body parser 사용 app.post('path', (req, res)=>{ console.log(req.body); }); body 데이터에 id, title이 있다면 곧바로 req.body.id, req.body.titl..