본문 바로가기

Node.js/일반

(9)
비동기로 작동하는 node.js의 메소드 원리 node.js의 기본 모듈에는 보통 동기 메소드와 비동기 메소드가 패어로 준비돼 있다. 예를 들어 fs 모듈에는 비동기로 readdir이라는 메소드가 있고 readdirSync라는 메소드가 있다. 자바스크립트는 싱글 스레드이기 때문에 만약 서버에서 동기 메소드인 readdirSync를 쓰면 여러 클라이언트의 요청에 대한 응답을 바로바로 보내줄 수 없기 때문에 절대 써서는 안 된다. 또한 비동기 메소드의 두 번째 인자에는 콜백 함수가 들어오고 비동기가 완료됐을 때 호출된다. fs.readdir('./', function(err, files) { if (err) console.log(err); else console.log(files); }); 만약 비동기 과정에서 오류가 발생하면 첫 번째 인자에는 오류가 ..
node.js에서 크롬 디버거와 콘솔 사용하기 node index.js를 실행할 때 다음처럼 --inspect-brk를 추가해준 뒤 node --inspect-brk index.js 크롬에서 F12 키를 눌러 콘솔창을 열고 못 보던 노드 아이콘을 클릭하면 시작부터 break가 걸린 채로 디버거가 작동되고 있음을 볼 수 있다. 여기서 원하는 곳에 break point를 설정해서 버그를 고칠 수 있다. 추가적으로 서버를 가동할 경우 --inspect를 써서 서버를 실행하면 node --inspect server.js 서버에서 사용한 콘솔 로그 등을 위와 마찬가지 방법으로 크롬에서 확인할 수 있다.
node.js의 http 모듈 기본 사용법 const http = require('http'); // 이벤트 이미터와 비슷하게 요청이 있을 때마다 호출 된다. const server = http.createServer((req, res) => { if(req.url === '/') { // http://localhost:3000/ res.write('환영합니다.'); res.end(); } if(req.url === '/get') { // http://localhost:3000/get res.write(JSON.stringify([1, 2, 3])); // [1, 2, 3]이라는 데이터를 string으로 변환해서 보낸다. res.end(); } }); server.listen(3000); console.log('서버가 가동 중입니다.'); res..
node.js에서 module.exports와 require 이해하기 1. module.exports node에서 module에 뭐가 들어 있는지 console.log로 확인해보면 다음과 같은 속성들이 여럿 나온다. Module { id: '.', exports: {}, parent: null, ... } 이 중 exports를 보면 node로 작성된 자바스크립트 언어에서 흔히 보이는 module.exports 이하가 뭘 의미하는지 파악할 수 있다. 하나의 파일 안에서만 유효한 함수나 변수를 module.exports 객체에 담아 다른 파일에서 참조할 수 있게 하는 것이다. function func() { } module.exports.func = func; 위에서는 func라는 함수를 exports 객체에 func라는 이름으로 담는다. 아래처럼 되는 것과 같다. Modu..
node.js 이벤트 이미터 기본 사용법 대부분 node.js의 클래스들은 아래의 이벤트 이미터 클래스를 상속한다고 한다. 알아두면 node.js 모듈들의 동작 원리들을 좀 더 이해할 수 있다. const EventEmitter = require('events'); const emitter = new EventEmitter(); // 이벤트가 동작될 때 호출되는 리스너를 정의한다. emitter.on('messageLogged', function(name) { // on = addListener console.log(name + '이 로그인 했습니다.'); }); // messageLogged라는 이벤트를 동작시킨다. emitter.emit('messageLogged', 'socratone'); // emit = 발생
프로젝트 폴더에 npm 설정하는 방법, npm 시작하는 방법 1. 터미널에서 해당 폴더로 들어간다. 2. 다음을 입력한다. npm init 3. 설정을 마친다. package.json 파일이 생성된다.
node.js에서 텍스트 파일 불러오는 방법 const fs = require('fs'); fs.readFile('sample.txt', 'utf8', function(err, data) { console.log(data); // data에 sample.txt의 내용이 담긴다. });
nvm과 node.js 설치법 NVM은 Node Version Manager의 약자로 말그대로 Node.js의 버전을 관리해준다. 쓰고 싶은 버전으로 손쉽게 움직일 수 있도록 해준다. nvm 설치 1. 다음을 입력한다. (맥 터미널) touch ~/.bash_profile curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash 2. 다음을 입력해서 nvm의 버전이 나오면 성공적으로 설치한 것이다. nvm --version node 설치 1. 다음을 입력한다. nvm install 10.13.0 2. 다음을 입력해서 node의 버전이 나오면 성공적으로 설치한 것이다. node -v