Node.js

Node.js - 웹서버 만들기

수업소개

Node.js는 웹서버 기능을 가지고 있습니다. 이런 특성을 이용해서 컨텐츠를 프로그래밍적으로 생산할 수 있게 됩니다. 여기서는 Node.js를 웹서버로 구동하는 방법을 살펴보겠습니다. 

 

 

 

강의

 

 

 

소스코드

아래의 코드 중 9행의 내용은 아래와 같이 변경해야 합니다. 

response.writeHead(404);
response.end();
return;


 

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);
    response.end(fs.readFileSync(__dirname + url));

});
app.listen(3000);

 

 

 

참고

web1 - HTML & Internet 수업의 소스코드

 

댓글

댓글 본문
작성자
비밀번호
  1. 박창신
    수강완료
  2. 강다리
    달려요
  3. 굼벵이
    완료
  4. 조현철
    완료
  5. 쑤우
    수강완료. 감사합니다~
  6. CronEB
    파워풀 하네요
  7. 아주코린
    완료
  8. YesterdayKite
    완료. 감사합니다.
  9. box3101
    php include 구문도 읽게하고싶은데 어떻게하면 좋을까요?
  10. 완료
  11. 주워니
    완료!
  12. 정환
    20190621
  13. egoing
    syntax highlight 라는 기능인데, 블로그에서 지원해줘야 사용할 수 있습니다.
    대화보기
    • 귤민파파
      저 이건 코딩하고 상관없는 질문인데요...
      포스팅된 글에 보면 (다른 해외 블로그도 있고..) 저 줄번호 있는 에디터는 일반 네이버 블로그 같은것에는 사용할수 없는건가요?
    • 작동이 안되서 댓글보고 수정했는데 됩니다 감사합니다
    • 성민
      감사합니다.
      잘 들었습니다.
    • 허공
      190510 감사합니다.
    • LEMILE
      저기서 coding.jpg파일 어떻게 보이게 하는지 아시는 분 있나요?
      coding.jpg파일을 data폴더에 옮겨 넣어도 안보이네요.
    • 이루
      완료!
    • 위준우
      완료
    • 아! 찾았습니다! 제가 잘못하고 있었네요ㅠㅠ 처음에 바탕화면-nodejs라는 폴더에 만들어놓고 web2-nodejs폴더 다시만들어서 거기에 있는 main.js파일을 실행하고 있던 거였습니다. 저처럼 안되시는 분들은 HTML소스코드 복사해온 그 폴더 안에있는 main.js 파일을 실행하신건지 한번 더 확인해보세요!
    • localhost:3000은 잘 들어가지는데 cmd에서 코드 갱신이 안되네요! 어떻게 해결해야 할까요 ㅠㅠ
    • 통신 MDP 좋아 ^_^
      완료 ^____________________^
    • 자유로움
      완료
    • localhost:3000시 오류 발생했는데 index.html만드니 정상동작했어요
    • 키리모찌
      repl.it에서 연습하시는 분들은
      __dirname = path.resolve(path.dirname(''));

      정의해주심 됩니다
    • cbw1030@naver.com
      개발환경 셋팅이 젤 어렵군
    • 류재정
      알아냈습니다.. 컨트롤 c였군요..ㅋㅋ
      대화보기
      • Jineun Hong
        완료
      • supernet
        완료
      • 류재정
        안녕하세요 node.js에 들어온 신입입니다.

        cmd에서 node (파일).js로 실행한 후에
        이고잉님께서는 ^C를 이용해 서버 가동을 중지한 후 다시 실행하면 수정된 코드가 갱신된다고 하셨습니다.
        node 명령어 사용 이후에 키보드로 치는 어떤 입력도 cmd에 들어가지 않습니다.
        어떻게 해야할지 모르겠습니다. 알려주시면 감사드리겠습니다.
      • 사차원
        저는 로컬호스트에 연결이 되는데 도저히 이고잉님께서 말씀하신 화면이 로드되지 않아서 한참 방법을 찾았습니다.

        제가 추측한 원인
        1. 저에게는 이미 Bitnami가 깔려있었고 실행되고 있어서 웹서버로 기능을 하고 있었습니다.
        2. 그래서 우선 Bitnami 실행을 멈췄습니다. 그랬더니 이제 로컬호스트에 아예 접속이 되지 않았습니다. 절망 ㅠ.ㅠ

        댓글을 읽다가 "고스트프리"님의 포트번호를 찾을 수 있냐는 질문에 "12"님께서 "netstat -a -o"라는 방법을 알려주셨습니다.
        그래서 저는 cmd 창을 열어서 (윈도우키 + r) "netstat -a -o"를 입력했습니다.
        그랬더니
        [①프로토콜] [②로컬 주소] [③외부 주소] [④상태 ] [⑤PID]
        [①TCP] [②0.0.0.0:115] [③DESKTOP-KK0G23J:0] [④LISTENING] [⑤776]
        [①TCP] [②127.0.0.1:3333] [③DESKTOP-KK0G23J:0] [④LISTENING] [⑤4446]

        이런 형태의 프로토콜이 여러개 나타났습니다. 저는 로컬호스트 주소가 127.0.0.1이란걸 기억하고 있어서
        상태가 Listening인 포트의 번호 로컬주소를 사용할 수 있을거라 추측했습니다.
        127.0.0.1:3333 중의 "3333"을 사용하기로 했습니다.
        그래서 소스코드 하단 app.listen(3000); 중에서 '3000'을 '3333'으로 변경하고 저장했습니다.
        그 다음 주소창에 localhost:3333을 입력하니 성공...
        너무 무식한 방법이지만 어쨌든 성공!!

        안되시는 분은 저와 같은 방법으로 해보시는 것도 좋을 것 같습니다.
      • playrf
        익스플로러11 에서는 사용 안되는 코드인가요? 익스플로러 사용자는 어떻게 수정 하는 것인가요?
      • 코딩
        감사합니다!
        localhost:3000 눌러도 안 됐던 이유가 그러면
        main.js 파일로 연결 해야하는데 전에 설치 동영상에서 만든
        helloworld.js 파일로 연결이 되어서 그런 건가요??
        대화보기
        • 3000안뜨시는분들 이유:
          nodejs 설치 동영상과 이번 동영상에서 파일이름이 약간 불일치함

          해결:
          1.바탕화면에 nodejs 만들었죠? 거기에 알집푼것들 전부넣으세요
          2.main.js.도 바탕화면 nodejs 폴더에 넣으세요
          3.cmd 창에 c:\Users\님컴터\nodejs 현재 여기까지 경로 만드시고,node main.js 치고 엔터하시면 되요(아마 localhost:3000이 접속하게 하는 서버오픈?그런거인듯...)
          4.다시 크롬에 localhost:3000치세요

          그럼 나오네요...
        • 도토리묵
          호우! 감사합니다
        • 호두
          감사합니다.
        • 졍이
          internal/modules/cjs/loader.js:583
          throw err;
          ^

          Error: Cannot find module '/home/cabox/workspace/main.js'
          at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
          at Function.Module._load (internal/modules/cjs/loader.js:507:25)
          at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
          at startup (internal/bootstrap/node.js:283:19)
          at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

          -----------------------------------------------------------------------------
          위와 같은 오류는 main.js가 있는 폴더에서 실행하지 않아 발생하는 오류인 것 같습니다.
          pwd 명령어로 현재 위치를 파악한 후 main.js가 있는 폴더로 이동하여 실행시켜보세요!
          저는 이렇게 해결했는데 그래도 안 된다면....ㅜㅜ
        • 지미츄
          감사합니당!!
        • 테디
          와 진짜 감사합니다ㅠㅠ 한 번에 해결됬어요ㅠ
          대화보기
          • 나마코엘
            설명해주신거 다 잘 됩니다.
          • JuicyFresh
            확인
          • 코드를 치고싶어요!
            혹시 윈도우즈를 쓰시는 분들은 오류가 났을때 cmd 창에서 cd 띄어쓰기 하시고 node main.js가 있는 폴더의 경로를 그대로 복사해와서 붙여넣기 하신다음에 node main,js를 입력하시면 됩니다.
            ex)C:\Users\\web1_html_internet-master\web1_html_internet-master>node main.js
          • node study
            위 동영상에 있는 에디터는 atom 쓰신건가요?? 제거랑 좀 달라서요
          • 파일위치도 제대로고 9행도 수정된 코드로 복붙했는데, local host에서 연결이 거부되어 숫자를 바꿔봐도 계속 안돼요,,ㅠㅠ 왜그럴까요?

            - 방금 익스플로러에서 해봤더니 되길래 다시 크롬에서 하니까 되네요?....왜 안됐던거지... 허허
          • 소금돌
            어렵네요.
          • 김귀인
            ㅎㅎ
          • 코베
            코베 완료!
          • twinpooh@gmail.com
            카렌 에델 웅 완료
          • Jinsu Kim
            삭제 했다가. 재설치 해보니 되네요...감사합니다 .^^
            대화보기
            버전 관리
            egoing
            현재 버전
            선택 버전
            graphittie 자세히 보기