728x90
반응형

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}`});
728x90
반응형

+ Recent posts