일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Interceptor
- javascript
- MySQL
- 코딩테스트
- 인접리스트
- OOP
- html
- typescript
- 자료구조
- dfs
- LifeCycle
- 알고리즘
- 변수
- java
- bean
- 프로그래머스
- GraphQL
- Deep Dive
- nestjs
- TIL
- node.js
- Spring
- JWT
- 인접행렬
- REST API
- queue
- winston
- css
- logger
- 탐욕법
- Today
- Total
목록FrameWork/Node.js (14)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwZbuM/btsBFJ9bL7Y/KplZYfBKo0zbYWYFj9EZ51/img.png)
Node.js를 통해 서버를 많이 구축하고 다양한 프레임워크를 사용했지만, 정작 Node.js의 특징의 장점, 단점에 대해 정확히 모르는 것 같아 한번 정리해야겠다는 생각이 들었습니다. Express, Nest.js는 Node.js를 기반으로 사용하고 있으니, 이를 한번 간단하게 정리해보겠습니다. Node.js란? 노드 공식 사이트에는 노드를 다음과 같이 설명하고 있습니다. Node.js® is an open-source, cross-platform JavaScript runtime environment. Node.js runs the V8 JavaScript engine, the core of Google Chrome, outside of the browser. Node.js는 오픈 소스이며, Cros..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bn1HXO/btsh33L3G86/qojZwH5oEwYIKDsU8hsYqK/img.png)
1. 입력정보와 관련된 보안 Nodejs path parse를 검색해보면 path.parse() 메소드는 파일의 경로와 정보를 객체로 전달해준다. 이를 감추기 위해 path.parse().base를 입력하면 입력 정보를 세탁해줄 수 있다. 오염된 정보를 세탁하는 방법으로는 var filteredId = path.parse(queryData.id).base; 이 부분을 통해 입력정보에 대해 보안을 지킬 수 있다. else { fs.readdir('./data', function(error, filelist){ var filteredId = path.parse(queryData.id).base; fs.readFile(`data/${filteredId}`, 'utf8', function(err, descrip..
Javascript의 객체와 모듈을 이용하여 template 함수들을 정리해보자. 1. 객체를 통해서 정리 function templateHTML(title, list, body, control){ return ` WEB ${list} ${control} ${body} `; } function templateList(filelist){ var list = ''; var i = 0; while(i < filelist.length){ list = list + `${filelist[i]}`; i = i + 1; } list = list+''; return list; } 두 항목 공통적으로 template로 묶여있다. var template = { HTML:function(title, list, body, co..
1. Delete 버튼 구현 Control에 Delete를 구현해보자. Delete 버튼을 링크로 만들면 안된다(Ex 구글 플러그인 시스템, Get 방식) 따라서 Form 형식을 사용해서 만든다. update ` pathname === '/delete_process' 도 추가해주자. else if(pathname === '/delete_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); var id = post.id; fs.unlink(`data/${id}`, function(error){ response..
1. Update 버튼 생성하기 Web 홈페이지와 Create 페이지에는 나오지 않고, 각각의 template에 들어갔을때 나올 수 있도록 control이라는 변수로 변경한다. function templateHTML(title, list, body, control){ return ` WEB ${list} ${control} ${body} `; } var template = templateHTML(title, list, `${title}${description}`, `create update` ); + 누구를 수정할지 querystring을 통해 id로 받을것이다. 2. 수정할 정보 전송 Update_process로 Post를 보낸다. 기존 제목을 넣기 위해서 value="${title}"을 넣어준다. 마..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmt3Hc/btsh16JAnY1/qKROU1YILkEr89Bax4ZPJk/img.png)
웹 어플리케이션에서 Create 진행해보자. 1. 글생성 UI 만들기 1) Create 버튼 제작 templateHTML 화면상 Create 버튼을 제작한다. function templateHTML(title, list, body){ return ` WEB ${list} create ${body} `; } Create 버튼이 생성된 것을 확인할 수 있지만, 클릭해보면 Not found가 뜨는 것을 알 수 있다. 2) 글생성 페이지 제작 } else if(pathname === '/create'){ fs.readdir('./data', function(error, filelist){ var title = 'WEB - create'; var list = templateList(filelist); var te..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bg8Riu/btsh2P0RaMn/wVJdkardbUV5MfdMMLWjTK/img.png)
Synchronous & Asynchronous (동기 & 비동기) 동기(synchronous) 방식 요청과 결과가 동시에 일어나는 방식으로 요청을 보낸 후 응답을 받아야 다음 동작이 진행된다. 요청과 결과가 한 자리에 동시에 나타나는 것으로 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 리턴받기 전까지는 다른 것을 하지 못하고 기다려야 한다. 특정 프로그램을 구동시키는 데 시간이 5분 소요된다고 하면, 이 프로그램이 구동되는 5분동안 컴퓨터는 다른 프로그램을 동작시키지 못하고, 구동되기를 기다려야 한다. 장점 : 설계가 간단하고, 직관적이다. 단점 : 요청에 대한 결과가 반환되기 전까지 대기해야 한다. 비동기(Asynchronous) 방식 요청과 결과가 동시에 일어나지 않는 방식으로 요청과 결..
반복되는 코드는 함수를 이용하여 정리해 줄 수 있다. 현재 두 부분의 코드가 반복해서 보이는데 templateHTML, templateList를 통해 정리해보자. function templateHTML(title, list, body){ return ` WEB ${list} ${body} `; } function templateList(filelist){ var list = ''; var i = 0; while(i < filelist.length){ list = list + `${filelist[i]}`; i = i + 1; } list = list+''; return list; } 함수를 정리해 준 모습이다. var app = http.createServer(function(request,respons..
파일 리스트 읽어오기 먼저 Nodejs file list in directory를 검색해서 파일 리스트를 읽어오는 방법을 검색해보자. 굉장히 친절하게 알려준다. https://stackoverflow.com/questions/2727167/how-do-you-get-a-list-of-the-names-of-all-files-present-in-a-directory-in-node-j How do you get a list of the names of all files present in a directory in Node.js? I'm trying to get a list of the names of all the files present in a directory using Node.js. I want ..
조건문과 쿼리스트링을 통하여 홈부분과 나머지 부분을 분리하였다. if queryData.id === undefined인 경우 -> 홈부분 else -> 나머지 목록 부분 var http = require('http'); var fs = require('fs'); var url = require('url'); var app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url, true).query; var pathname = url.parse(_url, true).pathname; if(pathname === '/'){ if(queryData.id === undefined){..