'Node.js/6. http 웹 모듈'에 해당하는 글 3건

http 모듈에서의 쿠키 설정은 간단합니다. 

( 예제는 서버단에서의 쿠키 설정입니다. 클라이언트 단에서는 javascript 로 하시면 됩니다.)


server.js 소스

var http = require("http");

http.createServer(function(req, res) {
 
    res.writeHead(200, {
        'Content-Type': 'text/html',
        'Set-Cookie':
          [
            'name = uiandwe' , 'des = test'
        ]
    });
    res.end(req.headers.cookie);

}).listen(8080, function(){
    console.log("server running");
});

소스상에서의 name=uiandwe , des =test  를 셋팅하였습니다. http://127.0.0.1:8080으로 접속하면 해당 쿠키가 화면에 뿌려지는것을 볼수 있습니다. 


또한 브라우져 개발자모드에서 쿠키를 확인하면 정상적으로 셋팅된것을 확인할수 있습니다. 



http 모듈은 정말 간단하게 웹서버를 구현케 합니다. 하지만 간단한 만큼 제한적인 기능만을 제공하기 때문에 여러 외부 웹 모듈들과 같이 사용합니다. 7장 부터는 외부 웹 모듈을 이용한 서버 구현입니다. 



저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

이번엔 http모듈에서 get 파라미터와 post 의 데이터 값을 구하는 예제 입니다. 



1. Get 파라미터 구하기 

server.js 소스

var http = require("http");
var url = require("url");

http.createServer(function(req, res) {
    var query = url.parse(req.url, true).query;
    console.log(query);

}).listen(8080, function(){
    console.log("server running");
});

브라우져로 url에 파라미터를 주면 ? 이후부터 json방식으로 콘솔에 찍힙니다.  

브라우져 접속 예) http://127.0.0.1:8080?titleId=597447&weekday=sat


콘솔창에 다음과 같이 나옵니다. 



2. post 값 구하기 

    post는 form 이 필요하기 때문에 html 파일이 필요합니다. 


server.js 소스

var http = require("http");
var fs = require("fs");

http.createServer(function(req, res) {
     if(req.method == 'POST'){
        req.on('data', function (data) {
            console.log(data.toString());
        });
     }
     fs.readFile(__dirname + '/'+ req.url +'.html', function (err, data) {
            res.writeHead(200, { 'Content-Type': 'text/html'});
            res.end(data);
        });
}).listen(8080, function(){
    console.log("server running");
});


post.html 파일 소스

<html>

    <head>

        

    </head>

    <body>

        <form method="post">

            <input type="text" name="id"/>

            <input type="password" name="password"/>

        

            <input type="submit"/>

        </form>

    </body>

</html>


해당 파일을 실행후 브라우저에 http://127.0.0.1:8080/post  로 접속 후 form 에 데이터를 넣은후 제출 버튼을 눌러주면 서버의 콘솔에 해당 값이 찍힙니다. 




참 쉽죠?

저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret


1. http 모듈을 이용하여 index.html 을 로드후 브라우저에 뿌려주는 간단한 서버 프로그램 입니다. 

index.html을 로드 하기 위해 fs 모듈을 이용합니다.  (fs 모듈은  참고하시기 바랍니다.)


server.js 소스 

var fs = require("fs");
var http = require("http");

http.createServer(function(req, res) {
    fs.readFile('index.html', function(err, data){
        res.writeHead(200, {'Content-Type':'text/html'});
        res.end(data);
    });
}).listen(8080, function(){
    console.log("server running");
});


index.html 소스

<!DOCTYPE html>

<html>

    <head>

        <title>Index</title>

    </head>

    <body>

        Hello node.js

    </body>

</html>


로컬에서 실행 하였다면 브라우저로 127.0.0.1:8080 으로 접속합니다. 


- 만일 writeHead 을 지정하지 않으면 일반 파일로 인식하여 해당 파일을 그대로 뿌려줍니다. 위의 예제에선 index.html 을 <!DOCTYPE html> .... </html> 까지 그대로 뿌려줍니다. 




2. 이번엔 페이지별 분기를 만들어 보겠습니다. 만일 url 경로를  / 로 접속한다면 index.html 을 /test 로 접속한다면 test.html 을 보여주는 분기를 만들어 보겠습니다. 

var http = require("http");

http.createServer(function(req, res) {
    console.log(req.url);
}).listen(8080, function(){
    console.log("server running");
});



node server.js 를 실행후 브라우저에 /1 과 /test 로 접속 하면 콘솔창에 아래와 같이 클라이언트가 접속한 url 주소가 나오게 됩니다. 




3. 위의 분기소스를 응용해서 url 에 맞게 html 를 로드 하는 소스 입니다. 

server.js 소스


var fs = require("fs");
var http = require("http");

http.createServer(function(req, res) {
   fs.readFile(__dirname + '/'+ req.url +'.html', function (err, data) {
            res.writeHead(200, { 'Content-Type': 'text/html'});
            res.end(data);
        });
}).listen(8080, function(){
    console.log("server running");
});


test.html 파일 소스


<!DOCTYPE html>

<html>

    <head>

        <title>test.html</title>

    </head>

    <body>

       test

    </body>

</html>



브라우저에서 http://127.0.0.1:8080/index   , http://127.0.0.1:8080/test  로 접속하면 해당 html파일이 로드되서 뿌려지는것을 확인할수 있습니다. 




이처럼 간단하게 html 별로 분기가 가능해집니다. 기본 모듈인 http 만으로도 정말 쉽고 간단하게 서버 프로그래밍이 가능합니다. 



저작자 표시
신고

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret