synchronous 동기적
asynchronous 비동기적 (병렬적) : Nodejs는 비동기적 처리를 위한 좋은 도구들을 가지고 있음.
- 효율적이지만 복잡.
fs모듈 : 파일을 핸들링하는 모듈
Sync가 없으면 비동기적임.
ex )
>> console.log('A');
>> var result = fs.readFileSync('syntax/sample.txt' , 'utf8');
>> console.log(result);
>> console.log('A');
A
sample.txt의 내용
C
>> console.log('A');
>> fs.readFile('syntax/sample.txt' , 'utf8', function(err, result){
>> console.log(result);
>> });
>> console.log('C');
A
C
sample.txt의 내용
callback : 파일을 읽은 다음에 함수를 호출하는 것. 너 할 거 하고 나중에 날 불러(call back) 라는 느낌의 작업.
C가 sample.txt보다 먼저 console에 출력되는 이유.
이름이 없는 함수 : 익명함수
Package Manager NPM
PM2 설치
npm install pm2 -g
pm2 start syntax/main.js
상황 보기 : pm2 monit
진행중인 프로세스 목록 보기 : pm2 list
끄기 : pm2 stop main
이 때의 main은 pm2 list에서 보이는 name
변경사항 로그 보기 : pm2 log
소스 변경되면 알아서 껐다 켜주기 때문에 소스가 변경됐을 때 reload만 하면 변경사항 반영됨. 일부러 껐다 켜는 수고를 덜 수 있음.
html : placeholder="" 입력칸 가이드
post전송방식 : URL에 쿼리스트링이 남지않음.
Request : 요청할 때 웹브라우저가 보낸 정보들
Response: 응답할 때 우리가 웹브라우저에게 전송할 정보들
var qs = require('querystring');
if (request.method=='POST'){
var body = '';
request.on('data', function (data) {
body += data;
if (body.length>1e6)
request.connection.destory();
});
request.on('end', function() {
var post = qs.parse(body);
});
}
요청된 data의 양이 너무 클 경우 커넥션을 destroy하는 일종의 안전장치
post방식으로 전송된 data를 객체화해서 사용할 수 있음.
Nodejs 리다이렉션 : 302번
response.writeHead(302, {Location: `/?id=${title}`});
'WEB > Nodejs' 카테고리의 다른 글
Nodejs 학습기록 : URL과 포트번호, 쿼리스트링, fs모듈로 파일 읽기 및 확인 (0) | 2020.12.13 |
---|