간단 한 nodejs http 서버 구축 상세 설명

5098 단어 nodejs서버
간단 한 nodejs 서버 구축
간단 한 설정 을 통 해 nodejs 기반 http 서버 를 구축 할 수 있 습 니 다.
switch 를 통 해 url 루트 를 설정 하 는 방법

//        Node HTTP   ,          
//          URL    
//  HTTP://localhost:8000 http://127.0.0.1:8000       

//              
var http = require('http');    //   http  api  
var fs = require('fs');      //   fs    api  
var server = new http.Server();  //     HTTP   
var urlapi = require('url');    //   url  api  
server.listen(8000);       //     8000

//   on        ,        ,             ,       
server.on('request', function(request, response) { //   request             
  //      URL
  var url = urlapi.parse(request.url);

  //       ,            url  
  console.log(url.pathname);

  //   URL              
  switch(url.pathname) {  //         
  case ''||'/' : //           ,          ,       index.html   ,nodejs         ,            
    fs.readFile("./page/index.html", function(err, content){ //       
      if(err) { //      ,          
        response.writeHead(404, { 'Content-Type':'text/plain; charset="UTF-8"' });
        response.write(err.message);
        response.end();
      } else { //        
        response.writeHead(200, { 'Content-Type' : 'text/html; charset=UTF-8' }); //       ,       
        response.write(content); //     ,       buter    
        response.end(); //    ,    ,         ,        
      }
    });
    break;
  case '/test/delay'://              
    //               ,  2000  
    var delay = parseInt(url.query) || 2000;
    //         
    response.writeHead(200, {'Content-type':'text/plain; charset=UTF-8'});
    //           
    response.write('Sleeping for' + delay + ' milliseconds...');
    //                 
    setTimeout(function(){
      response.write('done.');
      response.end();
    }, delay);
    break;

  case '/test/mirror'://      test/mirror,      
    //       
    response.writeHead(200, {'Content-type':'text/plain; charset=UTF-8'});
    //               
    response.write(request.mothod + ' ' + request.url + ' HTTP/' + request.httpVersion + '\r
'); // for (var h in request.headers) { response.write(h + ':' + request.headers[h] + '\r
'); } response.write('\r
');// // // , request.on('data', function(chunk) { response.write(chunk); }); // , request.on('end', function(chunk){ response.end(); }); break; case '/json' : // JSON // response.writeHead(200, {'Content-type':'application/json; charset=UTF-8'}); response.write(JSON.stringify({test:'success'})); response.end(); break; default:// , , var filename = url.pathname.substring(1); // '/' var type = getType(filename.substring(filename.lastIndexOf('.')+1)); console.log(filename); // css js .... // , // , API fs.createReadStream() fs.readFile(filename, function(err, content){ if(err) { response.writeHead(404, { 'Content-Type':'text/plain; charset="UTF-8"' }); response.write(err.message); response.end(); } else { response.writeHead(200, { 'Content-Type' : type }); response.write(content); response.end(); } }); break; } }); // function getType(endTag){ var type=null; switch(endTag){ case 'html' : type = 'text/html; charset=UTF-8'; break; case 'htm' : type = 'text/html; charset=UTF-8'; break; case 'js' : type = 'application/javascript; charset="UTF-8"'; break; case 'css' : type = 'text/css; charset="UTF-8"'; break; case 'txt' : type = 'text/plain; charset="UTF-8"'; break; case 'manifest' : type = 'text/cache-manifest; charset="UTF-8"'; break; default : type = 'application/octet-stream'; break; } return type; }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기