콜백함수는 다른 함수에 인자로 전달되어, 특정 작업이 완료되었을 때 실행되는 함수이다.
주로 비동기 작업처리시 사용되고, 작업이 끝난 후 그 결과를 처리하거나 다음작업을 진행할 수 있게한다.
즉 전달된 인자로 작업처리 후 그 결과를 재사용할 수 있는 함수이다.
Node.js의 많은 API는 비동기적으로 설계되어 있고, 콜백함수를 사용하여 작업이 완료되면 호출된다.
이러한 비동기 함수는 보통 마지막인자로 콜백함수를 받는다.
흔히 사용되는 콜백 패턴
function(err, result){ if(err){ //에러처리 }else{ //결과처리 } }
파일 읽기
var fs = require('fs') fs.readFile('example.txt','utf-8',function(err,data) { if(err){ //에러 발생시 console.log('Error 발생', err); return; } console.log('File content:' data); })
http모듈을 사용한 서버에서의 콜백함수
var http = require('http') //서버 생성 var server = http.createServer(function(req,res){ res.writeHead(200, {'content-Type':'text/pain'}) res.write('Hello') res.end(); }) server.listen(3000, function(){ console.log('서버가 실행되었습니다. http://localhost:3000'); })