Node.js/nodeJS 기본
-
[ NodeJS 기본 ] 파일 입출력 구현과 보안Node.js/nodeJS 기본 2023. 3. 20. 17:37
아래는 사용자 입력에 대한 출력 및 수정 삭제를 구현한 코드입니다. 홈에서는 쓰여진 글의 목록을 출력 및 글쓰기 화면으로의 접근, 쓰여진 글 보기 등 을 가능하게 했으며, 각 글에 접근해 수정 혹은 삭제가 가능도록 하였습니다. let http = require("http"); let fs = require("fs"); let URL = require("url"); let qs = require("querystring"); let path = require("path"); let sanitizeHtml = require("sanitize-html"); let tp = require("./lib/template.js"); let app = http .createServer((req, res) => { let..
-
[ NodeJS 기본 ] form을 통한 사용자 데이터 전송Node.js/nodeJS 기본 2023. 3. 18. 18:10
home 위 form 예시에서는 action 속성에 "/create_process"를 할당했고 method 속성을 POST로 지정했습니다. 즉, submit 될 때 발생하는 HTTP request의 url 프로퍼티는 "/create"가 됩니다. 따라서 nodejs에서는 pathname === "/create"란 조건문으로 request에 대응하여 적절한 응답을 전달할 수 있습니다. 이때 사용되는 것이 nodejs의 내장모듈인 querystring 모듈과 request의 on 메서드입니다. request.on 클라이언트가 서버로 HTTP request를 보낼때 서버는 request를 읽을 수 있는 스트림으로 받습니다. request.on 메서드는 매 스트림이 data 이벤트가 발생시킬때 마다 실행되는 ca..
-
[ NodeJS 기본 ] Node JS에서의 CSS 적용Node.js/nodeJS 기본 2023. 3. 18. 10:41
nodejs에서는 외부 html을읽거나 스크립트 상에 정의된 템플렛을 이용해 html을 response로 전달합니다. 이때, html파일에 style.css라는 파일을 적용하고 싶다면, 아래와 같이 css파일 요청에 대한 응답을 정의해 놓으면 됩니다. (html 파싱 과정중 발생한 css와 관련된 request에 대한 응답을 정의함으로써 페이지에 css를 적용가능하게 되는 것입니다.) const http = require('http'); const fs = require('fs'); http.createServer((req, res) => { if (req.url === '/style.css') { fs.readFile('style.css', (err, data) => { if (err) { res.wr..
-
[Node.js 기본] Home 및 404 Not Found 구현Node.js/nodeJS 기본 2022. 12. 12. 19:36
writeHead()의 각 인자에 대한 설명은 아래와 같다. 200 : indicates that the request was successful and the server is sending back a response with the requested data. 404 : indicates that the requested resource was not found on the server. 아래 코드는 request.url을 두 번째 인자를 true(query 객체화)로 파싱하여 루트 path인 "/"에 home을, "/"에서 query를 통해 페이지의 변화를 주었다. 또한 루트 path "/" 외의 경우는 잘못된 접근으로 취급하여 상태코드 404를 writeHead의 인자로 주었다. let http..
-
[Node.js 기본] File SystemNode.js/nodeJS 기본 2022. 12. 11. 23:51
[Node.js 기본] File system 1. File System file system의 핵심 처리 방법은 아래 네가지이다. C : create R : read U : update D : delete node.js에서 C.R.U.D는 fs 모듈을 통해 다루어진다. fs 모듈에는 매우 다양한 메소드가 존재하는데, 이중 주로 사용되는 읽기, 쓰기 함수를 정리하면 아래와 같다. 1-1) Create, Update fs.writeFileSync(), fs.writeFile() 이 두 메소드는 기존 파일이 존재할 경우 업데이트 하고, 존재하지 않을 경우 새로운 파일을 생성한다. Sync의 경우 작업이 완료될 때까지 코드 실행을 차단하고 반대의 경우 코드 실행이 차단되지 않고 콜백 함수를 사용해 작업 결과를 ..
-
[Node.js 기본] URL 기본Node.js/nodeJS 기본 2022. 12. 11. 15:53
[Node.js 기본] URL 기본 1. URL MDN 사전은 URL을 아래와 같이 정의한다. URL이란 인터넷에서 웹 페이지, 이미지, 비디오 등 리소스의 위치를 가리키는 문자열입니다. 정의된 내용을 보면 URL이 문자열이란 것 하나는 확실하다. 그렇다면 URL은 어떤 문자열로 어떻게 구성되어 있을까? 아래의 예시 를 살펴보자 http://www.example.com/main?id=HTML&page=12#fragment 예시의 URL에선 URL을 구성할 수 있는 모든 요소들을 나타내었다. 이를 각 부분별로 나누어 예시와 함께 정리하면 아래의 표와 같다. example part feature https:// protocol specifiy the protocol used to access the reso..
-
[Node.js 기본] 서버의 동작 원리 및 함수Node.js/nodeJS 기본 2022. 12. 11. 15:50
[Node.js 기본] 서버의 동작 원리 및 함수 내가 이해한 서버의 동작 원리는 클라이언트가 url에 접속하면(request) 서버는 이를 감지하고 request에 대응하는 response를 제공한다. 이때 대응하는 response를 제공하기 위해 사용되는 것이 request(url)의 path, query string, fragment 부분이다. nodeJS의 경우를 예로 들자면, request.url을 url 모듈의 parse()를 통해 path, pathname, query 등으로 구분하고 if 조건문과 fs모듈을 통해 조건(path, query등)에 따라 미리 정의된 response(html, 혹은 임의로 작성한 template)를 제공한다. nodeJS를 통해 특정 path, query str..
-
[Node.js 기본] Node.js 배경 지식 및 NPM 명령어Node.js/nodeJS 기본 2022. 12. 10. 23:37
[Node.js 기본] Node.js 배경 지식 및 NPM 명령어 졸업논문을 위한 프로젝트 진행중 서버환경을 다루어야할 상황을 접하게 되었다. 당시에는 관련 지식이 없어 Webpack dev server 모듈을 설치해 사용했지만 보다 깊게 공부해보려 한다. 서버 환경을 다루기 위한 기술 들로는 Node.js, PHP, JSP, Django, Ruby on rails 등이 있는데, 나는 javascript에 대한 익숙함 때문에 Node.js를 선택했다. 다른 언어들을 공부할 때와 마찬가지로 생활코딩님의 강의를 듣고 정리해가며 진행하고자 한다. 1. Node.js의 등장 배경 구글이 발표한 크롬의 베타버전에 탑재된 v8 엔진이 오픈소스로 공개되었고, 기존 서버 환경에서 작성된 javascript의 속도를 크..