(node.js) 개념, 모듈, 파라미터 받기
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을 사용.
> 위 방법이 귀찮을 때는 숫자키 옆에 있는 ( ` )를 싱글 대신에 사용하면된다.
> 리터럴이란? 정보를 표현하는 기호
댓글남기기