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. JongHan Park
    완료
  2. cd 파일경로 치신다음 하셔야 합니당!
    대화보기
    • 도전
      node main.js를 입력하면 SyntaxError: Unexpected identifier 가 뜨는 이유가 무엇일까요?
    • 샬롬
      완료
    • 임은정
      와안 료오
    • hammi
      잘 들었습니다 감사합니다!
    • 딥허브
      localhost:3000 해서 화면 안뜰때
      저는 리액트 설치하다가 yarn 으로 했는데 안떠서 구글링하고 하다가 여기까지 봤네요
      어찌어찌 해결해서 혹시나 같은방법으로 해결될수도 있는 분들 계실까봐 댓글달아둡니다.
      cmd 에서 프로젝트 폴더에서 set port=5000 명령어로 포트 바꿔주고
      다시 yarn start 하니까 해결됐습니다.
    • JT_brand
      감사합니다
    • ELECTRON까지
      저는 왜 console.log가 두번씩 찍힐까요...?
    • 아이랑디어
      와우.. 대박입니다 ㅠㅠ 제가 원하던 기능인데 node.js로 할 수 있겠네요
    • 학생
      너무 고맙습니다. 선생님.
    • 파이어뱃
      2019_12_05 complete
    • 남기봉
      인터넷익스플로러에서는 안되는데 , 크롬에서는 되네요.. ㅜㅜ
    • 박창신
      수강완료
    • 강다리
      달려요
    • 굼벵이
      완료
    • 조현철
      완료
    • 쑤우
      수강완료. 감사합니다~
    • CronEB
      파워풀 하네요
    • 아주코린
      완료
    • YesterdayKite
      완료. 감사합니다.
    • box3101
      php include 구문도 읽게하고싶은데 어떻게하면 좋을까요?
    • 완료
    • 주워니
      완료!
    • 정환
      20190621
    • 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치세요

            그럼 나오네요...
          • 도토리묵
            호우! 감사합니다
          • 호두
            감사합니다.
          버전 관리
          egoing
          현재 버전
          선택 버전
          graphittie 자세히 보기