일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹해킹기초
- 뷰
- 웹해킹
- 웹개발
- GIT
- wargame.kr
- 자바문제풀이
- 웹기초
- 자바기초
- 워게임추천
- 워게임
- NavBar
- MongoDB
- 이진트리
- CTF
- Express
- gitbash
- 자바
- materialize
- 자료구조
- 이진탐색트리
- 그래프
- 써니나타스
- nodeJS
- bootstrap
- mongoose
- node.js
- 포렌식
- 포렌식워게임
- node
- Today
- Total
목록Express (10)
보안 전공생의 공부
게시물과 사용자 사이에 관계(relationship)을 만들어서 게시물(document)에 작성자(document id)를 기록하여 글 작성자 정보를 알 수 있게 만든다. 자신의 글은 삭제 가능/타인의 글은 삭제가 불가능하게 만들기 위함이다. · schema 수정 post schema에 author을 추가하였다. ref: 'user'를 통해 이 항목의 데이터가 user collection의 id와 연결됨을 mongoose에 알린다. user의 user.id와 post의 post.author가 연결되어 user과 post의 relationship이 형성된다. - 참조하기 좋은 글 : https://catnap-jo.tistory.com/entry/Mongoose-%EB%AA%A8%EB%A5%B4%EB%8A..
routes/userjs에서 사용한 parseError함수를 post에서도 사용하여 post의 error를 처리한다. -> 여러 파일에서 사용하게 될 함수들을 하나의 module로 분리 // util.js const util = {}; util.parseError = function(errors){ const parsed = {}; if(errors.name == 'ValidationError'){ for(const name in errors.errors){ const validationError = errors.errors[name]; parsed[name] = { message:validationError.message }; } } else if(errors.code == '11000' && erro..
· edit.ejs 수정 Edit User Current Password* Username* Name* Email New Password Password Confirmation *Required Back Submit user.username 대신 router에서 받은 username 사용 class="form-control " 각 항목의 form-group class가 있는 div에 위 코드가 추가되었다. 에러가 있으면 bootstrap의 invalid-feedback class를 사용한다. 서버 측에서 유효성 검사를 사용한 것이다. ( 참조하기 좋은 글 : https://getbootstrap.kr/docs/5.0/forms/validation/ ) input 밑에 위 코드를 추가하여 에러메세지를 보여..
· flash : 변수처럼 이름과 값(문자열, 숫자, 배열, 객체 등 어떠한 형태의 값이라도 사용 가능)을 저장할 수 있는데, 한 번 생성되면 사용될 때까지 서버 메모리상에 저장이 되어 있다가 한 번 사용되면 사라지는 형태의 data -> connect-flash package를 이용하여 flash · regex(Regular Expression, 정규 표현식) : 특정규칙을 가진 문자열의 집할을 표현하는 데 사용하는 형식 언어 (출처 :https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D) 문자열이 특정한 형식을 가지고 있는지 아닌지를 판단하기 위해 사용함 ->User의 username, password, name, e..
// public/js/script.js $(function(){ function get2digits (num){ return ('0' + num).slice(-2); } function getDate(dateObj){ if(dateObj instanceof Date) return dateObj.getFullYear() + '-' + get2digits(dateObj.getMonth()+1)+ '-' + get2digits(dateObj.getDate()); } function getTime(dateObj){ if(dateObj instanceof Date) return get2digits(dateObj.getHours()) + ':' + get2digits(dateObj.getMinutes())+ ':..
· bootstrap : 빠르고 간편한 html, css, js 프레임워크 https://getbootstrap.com/docs/4.1/getting-started/introduction/ Introduction Get started with Bootstrap, the world’s most popular framework for building responsive, mobile-first sites, with BootstrapCDN and a template starter page. getbootstrap.com 위 bootstrap 공식 사이트에서 제공하는 방법으로 bootstrap을 설정한다. My Website viewport는 display상에서 웹페이지가 보여지는 영역이다. 데스크탑 viewp..
· module : 보다 작고 이해할 수 있는 단위로 나뉘어진 것 - 본체에서 분리되어 작은 부분으로 유기적으로 구성되어 있다가, 필요할 때 본체에 합류하여 그 기능을 수행할 수 있는 것 · 모듈화 : 거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 과정 (출처 : http://www.ktword.co.kr/test/view/view.php?m_temp1=2226 ) -> module은 다른 파일에 있는 object를 불러와서 현재 파일에서 사용하는 것 다른 파일의 object를 불러오기 위해서는 해당 object를 module.exports에 담아주어야 함 다른 파일의 module을 불러오기 위해서는 require 함수 사용. require 함수의 parameter로 대상 module의 상..
※ EJS (Embedded JavaScript) : express에서 dynamic website(동적 웹사이트)를 만들기 위해 template로 사용되는 파일.(확장자: .ejs) 우선, 터미널에서 ejs package를 설치한다. ejs를 사용하기 위해서는 다음과 같은 코드가 필요하다. · express의 view engine에 ejs를 set하는 코드 //index.js app.set('view engine','ejs')//템플릿 엔진 · query를 통해 이름을 받기 위한 코드 //index.js app.get('/welcome', (req,res)=>{ res.render('welcome', {name:req.query.nameQuery}); }) - req.query에 query들이 저장된다..