Backend Study/Node.js (10) 썸네일형 리스트형 call back 함수 call back 함수란? 비동기 프로그래밍 방식으로 코드를 만들 때 함수를 파라미터로 만들어 전달한다. 예를들어 더하기 함수를 실행한 후 결과 값이 반환되기를 기다리지 않고 다음 코드를 실행하려고 할 때 콜백 함수를 사용한다. 그리고 연산이 끝났을 때 파라미터로 전달한 함수가 실행될 수 있다면 효율적이다. 이 때 파라미터로 전달되는 함수를 콜백 함수라고한다. function getData(){ let tableData; $.get('https://hi.com', function (response){ tableData=response; }); return tableData; } console.log(getData()); ➡️ $.get()을 사용해 지정된 URL에 데이터를 보내주세요라고 요청하고, 그 데.. multer로 파일 업로드하기 1. multer이란? 파일 업로드를 위해 사용되는 노드의 미들웨어이다. 2. fs 모듈 사용하여 파일 있는지 확인하기 fs는 노드 js에 들어있는 모듈로 file system의 약자이다. 서버의 파일/폴더에 접근할 수 있는 함수들이 들어있다. fs.readdirSync() 함수로 폴더가 존재하는지 확인하고, 없으면 fs.mkdirSync() 함수로 폴더를 생성해준다. try { fs.readdirSync('uploads'); } catch (error) { console.log('uploads 폴더가 없어 uploads 폴더를 생성합니다.'); fs.mkdirSync('uploads'); } 3. multer module 불러오기 const multer = require('multer'); 4. mul.. Node.js 내장 모듈 사용하기 노드는 웹 브라우저에서 사용되는 자바스크립트보다 더 많은 기능을 제공한다. 노드에서 제공하는 모듈들이 있다. 1. OS 노드에서는 os 모듈을 사용하면 운영체제의 정보를 가져올 수 있다. 2. PATH 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈이다. path.sep path.delimiter path.dirname(경로) path.basename(경로, 확장자) (생략) 3. URL 인터넷 주소를 쉽게 조작하도록 도와주는 모듈이다. 4. 파일 시스템 접근하기 파일을 생성하거나 삭제하고, 읽거나 쓸 수 있다. *버퍼와 스트림 이해하기 파일을 읽거나 쓰는 방식에는 크게 두가지 방식이 있다. (버퍼, 스트림) 영상을 로딩 중일 때 버퍼링한다고 하고, 영상을 실시간으로 송출할 때는 스트리밍한다고 한다... Node.js Process process 객체는 현재 실행되고 있는 노드 프로세스에 대한 정보를 담는다. process.env가 유용하게 사용된다. 서비스의 중요한 키를 저장하는 공간으로 사용되기도 하기 때문이다. 서버나 데이터베이스의 비밀번호와 각종 API 키를 코드에 직접 입력하는 것은 위험하기 때문에, process.env 속성으로 대체한다. const secretId = process.env.SECRET_ID; const secretCode = process.env.SECRET_CODE: Node.js 모듈 이용하기 노드는 코드를 모듈로 만들 수 있다. 모듈이란 특정한 기능을 하는 함수나 변수들의 집합이다. ex. 수학에 관련된 코드들만 모아서 모듈을 하나 만들 수 있다. (여러 프로그램에서 해당 모듈을 재사용 가능하다.) 예제. var.js # var.js const odd = '홀수입니다'; const even = '짝수입니다'; module.exports = { odd, even, } # 변수들을 모아둔 모듈, 다른 파일에서 이 파일을 불러오면 module.export에 대입된 값 사용 가능 var.js를 참조하는 func.js const { odd, even } = require('./var'); function checkOddOrEven(num) { if(num%2){ return odd; } return .. Node.js 설치하기 VS code https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. code.visualstudio.com Node.js 특징 1. 자바 스크립트 런타임 노드는 자바스크립트의 런타임이다. (런타임은 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 뜻한다. ) 기존의 자바 스크립트는 프로그램을 인터넷 브라우저위에서만 실행할 수 있었다. 2. 이벤트 기반 이벤트 기반은 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식이다. ex. 클릭, 네트워크 요청 이벤트는 미리 등록을 해둬야하는데 이것을 이벤트 리스너에 콜백 함수를 등록한다고 표현한다. 노드도 이벤트 리스너에 등록해둔 콜백 함수를 호출한다. *이벤트 루프란? 여러 이벤트가 동시에 발생했을 때 어떤 순서로 콜백 함수를 호출할지 결정한다. *태스크 큐란? 이벤트 발생 후 호출되어야 할 콜백 함수들이 기다리는 공간이다 *백그라운드란? 타이머나 I/O 작업 콜백 또는 이벤트.. 자바 스크립트 var, let, const 차이점 1. var var name = 'hi' console.log(name) var name='hihi' console.log(name) ➡️ 변수를 한 번 더 선언했음에도 불구하고 에러가 나오지 않는다. let name = 'hi' console.log(name) let name = 'hihi' console.log(name) #이미 선언되었다는 에러 메세지 나옴 ➡️ let 과 const는 이미 선언되었다는 에러 메시지가 뜬다. * 그럼 const와 let의 차이점은? 2. let let name = 'hi' console.log(name) let name = 'hihi' console.log(name) # 불가능 name = 'hihihi' console.log(name) #가능 let은 변수 재선언은.. 이전 1 2 다음