//1번
console.log('A');
var result = fs.readFileSync('syntax/sample.txt', 'utf8');
console.log(result);
console.log('C');
//2번
console.log('A');
fs.readFile('syntax/sample.txt', 'utf8', function(err, result) {
console.log(result);
});
console.log('C');
1번과 2번을 실행하면 다른 결과가 나온다. (sample.txt 내용: B)
이것처럼 동기는 순차적으로 앞의 일이 끝나야 뒤의 일이 실행이 되는 것이다. 비동기는 비유하자면 오래 걸리는 일은 지켜만 보고 있지 않고 그게 될 동안 다른 일 먼저 하는 것이다. 병렬적! node.js는 비동기적인 처리를 하기 위한 좋은 기능들을 가지고 있다.
코드로 설명 ㅇㅇ
var a = function() {
console.log('A');
}
function slowfunc(callback) {
callback();
}
slowfunc(a);
코드로 설명 ㄱㄱ
//main.js 일부
else if (pathname === '/create_process') {
//form의 submit 버튼을 클릭하면 /create_process로 데이터를 전송함.
//그러니까 그 버튼을 클릭했을 때 조건 만족
var body ='';
request.on('data', function(data){
body = body + data;
}); //body 변수에 조각조각 데이터가 들어올 때마다 이어서 붙인다.
request.on('end', function(){
var post = qs.parse(body); //body(=입력값)를 post에 저장. 즉 post data임.
var title = post.title; //title에 입력한 값
var description = post.description; //description에 입력한 값
console.log(post);
});
response.writeHead(200); //파일을 성공적으로 전송
response.end('success');
}
콘솔 출력: [Object: null prototype] { title: 'ggg', description: 'ggggg' } // 폼에 입력한 값이 배열으로 뜬다.
웹 페이지 출력: success