목록Node.js (15)
세리프 따라잡기
※ 해당 과정에 대한 자세한 내용들은 github에 올려두었습니다😉 mysql A node.js driver for mysql. It is written in JavaScript, does not require compiling, and is 100% MIT licensed. www.npmjs.com 1. 설치 npm install --save mysql ← 코드 입력으로 설치하기 [--save를 쓰는 이유: package.json 파일의 dependencies까지 추가시켜주기 위함] 2. 여기에 있는 코드 그대로 붙여넣기 [새로운 파일(mysql.js)을 만들어 붙여넣기함] var mysql = require('mysql'); //mysql 모듈을 사용 var connection = mysql.crea..
express-generator를 이용해 웹을 만들면서 소스 코드를 수정할 때마다 npm start를 재시작해야 한다는 번거로움이 있었다😤 게다가 pm2를 평소 사용하고 있었는데, script를 안 읽어주는지 에러가 나서 실행이 안 되는 상황😫 그래서 여러 가지 검색한 결과 nodemon을 알게 되었다. nodemon은 쉽게 말하자면 소스 코드를 수정했을 때 자동으로 서버를 재시작하여주는, 즉 해당 폴더의 파일들을 모니터링해주다가 파일 수정을 감지하면 서버를 재시작해준다. = 일일이 서버를 재가동시키지 않을 수 있다는 것! 설치는 npm install nodemon -g 를 통해 전역(글로벌)으로 해준다. 간단한 명령어 사용서 nodemon -v 버전 확인 nodemon 파일명.js 파일명을 실행해준다 ..
7. 정적인 파일의 서비스 미들웨어를 이용하는 사례이면서, 웹 애플리케이션을 만드는 데에 있어 중요한 정적인 파일(img, JS, CSS 등)을 서비스하는 방법을 알아보자. (express ver.) expressjs.com/en/starter/static-files.html 참고. 먼저 우리가 사용하는 프로그램에 폴더(public)를 만들고 안에 이미지(hello.jpg)를 넣어둔다. 그리고 아래와 같이 호출한다. 문법: express.static('public')) / 서비스하고자 하는 디렉토리를 지정해주면 된다. (public 아래의 디렉토리에 url을 통해서 접근할 수 있게 됨 - 이외의 접근은 할 수 없어 안전성도 있음.) app.use(express.static('public')); //pub..
6. 미들웨어(middleware)에 대하여 소프트웨어를 만들 때 우리가 처음부터 끝까지 만드는 경우는 거의 없다. 보통은 다른 사람이 만든 소프트웨어를 부품으로 해서 나의 소프트웨어를 만들어간다. (그렇기 때문에 생산성이 높아지는 것) 쉽게 말하자면: 다른 사람(혹은 자신)이 만든 소프트웨어를 미들웨어라고 한다. 일단 남이 만든 것을 알아보자!! expressjs.com/en/guide/using-middleware.html#middleware.third-party 를 이용해 알아보자. 여기서 third-party는 남들이 만들었다는 뜻이다. (express가 만든 오피셜이 아닌) -1. body-parser : body라는 것은 웹 브라우저에서 요청한 정보의 본체를 말하고 본체를 설명하는 데이터를 헤..
시작하기 앞서 모든 코드들은 nodejs 부터 계속 이어지고(수정 및 추가) 있음을 알립니다!! 반복적으로 등장하는 일들, url parameter를 통해서 전달된 데이터를 받아서 뭔가를 처리하는 일이나 정적인 JS파일이나 이미지 파일 같은 것들을 컴퓨터로 읽어서 사용자에게 제공하거나, 로그인이나 보안적 이슈들을 해결하는 것들 = 이런 것들을 보다 안전하게 처리할 수 있도록 도와주는 게 nodejs 위에서 동작하는 Framework이다. 그중에 가장 보편적으로 사용되는 framework 인 Express를 배워보자! 1. 설치 expressjs.com/en/starter/installing.html 를 참고해 콘솔창에 npm install express --save를 입력시켜 설치하자. 설치가 완료되면 ..
1. 입력 정보에 대한 보안 나중에 데이터베이스를 통해 더 자세히 데이터를 관리할텐데, DB는 id와 password가 있어야 데이터를 가져올 수 있다. 예를 들어 main 폴더에 password.js 파일을 생성해 아래와 같은 정보를 입력했다고 하자. module.exports = { id: 'gothic', password: '1234' } 이 정보에 보안을 해두지 않았다면, 우리는 쿼리데이터를 사용하는 '?id=' 부분에 상위 폴더로 가는 키워드를 입력하여 패스워드를 볼 수 있다. 이 문제를 해결하기 위해 nodejs.org/api/path.html#path_path_parse_path 참고해, 콘솔창에 입력해 분석해보자. 여기서 기본(base)은 password.js이기 때문에 ../passwor..
1. 자바 스크립트의 문법 중 하나인 객체(object)에 대해 알아보자. 객체(Object) 배열(Array) 공통점 이 둘은 정보를 정리·정돈하는 수납 상자라고 생각하면 된다. 차이점 - 순서가 없는 정보를 저장하기에 최적화 됐다. - 숫자로 식별자로 주는 것이 아닌, 이름으로 식별자를 줄 수 있다. - 순서에 따라서 정리를 한다. - 각각의 정보들은 고유한 식별자가 있고, 그 식별자는 숫자이다. // 배열 예시 var members = ['malgun', 'gothic', 'tistory']; //배열 안에 정보가 담긴 것, 그냥 순서대로 데이터를 넣으면 된다. console.log(members[1]); //gothic 출력 // 객체 예시 var roles = { //배열의 리터럴은 대괄호, 객..
22. POST 방식으로 전송된 데이터 받기 stackoverflow.com/questions/4295782/how-to-process-post-data-in-node-js 검색을 통한 코드 참고. var http = require('http'); var fs = require('fs'); var url = require('url'); var qs = require('querystring'); //qs가 쿼리스트링이라는 nodejs 모듈을 가져오는 것. qs.parse 코드 줄에서 사용 function templateHTML(title, list, body) { return ` WEB ${list} create ${body} `; } function templateList(filelist) { var l..
17. 동기적(synchronous)인 것과 비동기적(asynchronous) 동기 일을 처리할 때, 단계적으로 처리하는 것을 말한다. 직렬적. 만약 1단계 일이 10시간이 걸린다고 하더라도 그 일을 기다렸다가 처리하는 상황을 말한다. 비동기 일을 처리할 때, 동시에 여러가지 일을 처리하는 것을 말한다. 병렬적. 만약 1단계 일이 10시간이 소요된다면 그걸 10시간 동안 보고 있지 않고, 컴퓨터든 누군가에게 일을 맡겨두고 다음 처리를 시작하여 보다 효율적이게 일을 처리하는 것을 말한다. 그러나 동기적 상황에 비해 다소 복잡함을 갖고 있다는 단점이 있다. = nodejs에서는 비동기적인 상황에 좋은 기능들을 많이 가지고 있다. 동기 vs 비동기 비교 nodejs.org/dist/latest-v14.x/do..
14. 파일 목록 알아내기 파일에 추가, 수정, 삭제 시에 우리가 일일이 찾아가서 수정할 수가 없다. 이 작업을 더욱 간편하게 만들기 위해 stackoverflow.com/questions/2727167/how-do-you-get-a-list-of-the-names-of-all-files-present-in-a-directory-in-node-j 를 통해 fs.readdir을 사용해보자. var testFolder = 'data'; //내가 실행하고자 하는 위치를 기준으로해서 data 디렉토리를 적어주면 된다(필자 기준 main.js의 데이터 파일은 data). = './data'와 같은 뜻이다. 이때 ./는 현재 디렉토리라는 뜻. var fs = require('fs'); fs.readdir(testF..