본문 바로가기

NodeJS16

cors 목차1. CORS란?2. 출처 확인3. CORS 설정하기4. 예제1. CORS란?Cross Origin Resource Sharing서로 다른 도메인, 프로토콜, 포트 간에 데이터를 공유하는 것을 제어하는 브라우저 보안 정책네트워크를 통해 클라이언트가 서버에 요청을 할 때 서버 입장에서는 클라이언트가 악의를 갖고 있는지 알 수 없다. 그래서 서버와 동일한 출처를 제외하고 이외에는 접근을 허용하지 않는다. 이 때 동일하지 않는 출처를 Cross Origin이라고 한다.2. 출처 확인그렇다면 서버는 요청이 왔을 때 출처를 어떻게 확인할까? 클라이언트에서 요청을 할 때 본 요청 전에 출처에 대해  허용이 됐는지 확인하는 사전 요청을 하게 되는데 이를 Preflight Requests라고 한다.정책 상 허용이 .. 2024. 6. 21.
form태그로 REST FUL 가능할까? 목차1. GET과 POST만 지원해?2. REST FUL은 어떻게 해?1. GET과 POST만 지원해?웹을 개발할 때 REST FUL에 관한 이야기를 많이 들었을 것이다. 그래서 REST방식으로 서버와 데이터를 주고 받으려고 하는데 서버에 데이터를 전송하기 위한 form태그의 method가 GET과 POST만 가능하다? 실제로 form태그에 method를 GET,POST가 아닌 것으로 설정 후 서버에 요청을 하면 요청 메서드가 GET으로 초기화된다. 왜 form은 다른 요청 메서드를 지원하지 않을까?HTTP가 처음 만들어질 때는 단순히 서버에 데이터를 요청(GET)하거나 서버에 데이터를 제출(POST)하는 것만으로 충분한 기능을 제공했고 다른 요청 메서드타입을 필요없기 때문이다. 또한 form태그 자체가.. 2024. 6. 15.
nodejs와 mysql연결 목차1. 모듈 설치2. DB와 연결하기3. 쿼리 실행하기 데이터 베이스에 저장된 데이터들을 사용자가 다루기 위해서는 사용하는 프로그램과 데이터 베이스가 연결이 되어있어야 한다. 웹 애플리케이션을 만들기 전에 데이터 베이스와 nodejs를 연결하는 방법을 알아보도록 하자.1. 모듈 설치nodejs에서 내부적으로 데이터베이스와의 연결을 지원하는 모듈이 없다. 그래서 mysql2라는 외부 모듈을 설치하여 연결을 할 것이다. npm i mysql2mysql2라는 모듈을 설치하는데 왜 1이 아닌 2를 설치할까? 가장 큰 이유는 promise지원 때문이다. 추후 알아볼 sequelize라는 ORM에서 promise 방식을 사용하기 때문에 공식 npm에서 mysq2 사용을 권장한다.2. DB와 연결하기모듈을 설치했다.. 2024. 6. 14.
ejs 목차1. EJS란?2. 사용법1. EJS란?body 태그 안에서 javascript 문법을 사용할 수 있도록 하는 서버 사이드 템플릿 엔진템플릿 엔진은 웹 애플리케이션에서 동적으로 HTML 페이지를 표시하기 위한 도구다. EJS는 템플릿 엔진의 하나로 클라이언트가 서버에 요청을 할 때 라우팅에 의해 동적으로 HTML 파일을 읽어 렌더링한다. 그런데 단순히 렌더링하는 것이 아닌 스크립틀릿이라는 블록을 통해 서버에서 처리한 데이터를 받아 화면에 표시할 수 있게 해준다.스크립틀릿일반 js 문법 사용시변수의 값을 불러올 시 2. 사용법ejs를 사용하기 위해서는 외부 모듈인 ejs를 설치해야 한다. 다만 express에서 ejs를 사용할 수 있도록 되어있어 별도로 모듈을 가져올 필요없이 템플릿 엔진에 대한 설정만.. 2024. 6. 10.