(node.js) 개념, 모듈, 파라미터 받기

2 분 소요

1. nodeJs시작

  • 프로그래밍적으로 사용자에게 전송할 데이터를 생성한다.
    아파치와 같은 웹서버는 할수 없다.

예제 코드

var http = require('http');
var fs = require('fs');
var app = http.createServer(function(request,response){
    var url = request.url;
    if(request.url == '/'){
      url = '/index.html';
    }
    if(request.url == '/favicon.ico'){
      return response.writeHead(404);
    }
    response.writeHead(200);
    console.log(__dirname + url);
    // 사용자에게 전송할 데이터 생성 하는 코드
    response.end('richard Kim : '+ url);

});
app.listen(3000);

2. 모듈 관련 내용 정리

  • node.js 에서 내부적으로 제공하는 모듈과 내가 직접 정의 하는 모듈이 있음.

사용자 정의 모듈

  • 먼저 모듈로 만들 mpart.js 파일 정의
    var M = {
    v: 'v',
    f:function() {
      console.log(this.v);
    }
    }
    // M의 객체를 외부에서 사용가능하게 만드는 명령어
    module.exports = M;
    
  • 다른 파일에서 위 사용자 정의 모듈을 부를 때 ~~~javascript // require는 java에서 import라고 생각하면됨 var part = require(‘./mpart.js’); console.log(part);

part.f();




### 외부 정의 모듈
~~~javascript
var http = require('http'); // http 관련 모듈
var fs = require('fs'); // 파일 관련 read 등의 모듈
var url = require('url'); // url정보를 가지고 있는 모듈

// http모듈을 사용해서 서버를 생성하는 과정 
//request(요청), response(응답)을 인자값으로 갖는다.
var app = http.createServer(function(request,response){
  //url 모듈을 사용해 서버에 요청한 url 정보를 담는과정
  var _url = request.url; 

  //url 요청한 모든 path 정보를 가지고 있음
  var queryData = url.parse(_url,true) 

  // 정상 통신에 대한 결과 코드인 200 세팅
  response.writeHead(200);

  // 실제 Body에 요청한 결과값을 보내준다.
  response.end('나에게 이것을 요청했지?');

});

url 모듈 관련

1) url.parse가 갖고 있는 데이터

// url.parse(_url, true)

Url {
  protocol: null,         -->http
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,             ---> 마지막 # 부분
  search: '?id=CSS',
  query: [Object: null prototype] { id: 'CSS' },
  pathname: '/haha',                 //마지막 
  path: '/haha?id=CSS',
  href: '/haha?id=CSS'
}

fs 모듈 관련

1) readdir 함수

  • 파일명을 리턴하는 함수이다.
  • 첫번쨰 인자값은 내가 읽을 파일 경로 String으로 세팅
  • 두번째 인자값은 callback 함수형으로 세팅한다. ~~~javascript fs.readdir(‘./data’, function(error, fileList){ // 리스트를 리턴하는걸 볼수 있음 console.log(fileList); });
#### 2) readFile 함수
- 파일 내용을 리턴하는 함수이다.
- 첫번째 인자값 = 읽어들일 파일 경로
- 두번째 인자값 = 인코딩 타입
- 세번째 인자값 = 읽어들인 후 로직을 적용할 callback 함수
~~~javascript
fs.readFile('data/index.txt', 'utf8', function(err, description){
  // 해당 경로에 있는 파일의 내용을 뿌려준다.
  console.log(description);
});

3) writeFile 함수

  • 파일을 생성할때 사용함.

querystring 모듈 관련

  • 쿼리형 데이터들을 처리하는 모듈
  • 쿼리 데이터 = url 마지막에 요청하는 파라미터
//body안에는 ? id=CSS & title=하이루 형식의 데이터가 있음..
//그 쿼리스트링을 파싱 하기위해 qs모듈을 사용함
//그럼 post 안에는 { } json 형식의 데이터로 담기게 된다.
  var post = qs.parse(body);

> 코드에서 줄바꿀때 역슬레쉬 \ 하지않으면 에러남,
> 엔터 효과는 \n을 사용.
> 위 방법이 귀찮을 때는 숫자키 옆에 있는 ( ` )를 싱글 대신에 사용하면된다.
> 리터럴이란? 정보를 표현하는 기호

댓글남기기