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. joyfulJin
    cmd 창에서 클릭할 떄마다 url이 안 떠서 뭔가 잘못되었나 싶었는데 윈도우 기준 컨트롤 c 한번 누르면 그 동안 클릭하였던 링크들이 표시되네요 (두번 누르면 node js 종료)
  2. kimkiki
    전강읜지 전전강읜지에 나와잇던거같은데 윈도우기준 '윈도우모양버튼+R' 누르고 cmd치면 나옵니다

    저걸 따라해야 js로 만든 서버를 실행시틸수 있는걸로 압니다.
    대화보기
    • 코딩중독
      저 cmd 창은 그럼 어떻게 연건가요? 저건 안따라해도 되는건지?..
      대화보기
      • kimkiki
        cmd창이에요
        대화보기
        • 코딩중독
          저기 왼쪽 아래 창은 어떻게 띄우는 건가요? 뭐 설명을 안해주시네......
        • 김혜린
          7월 2일 완료했습니다
        • 박영호
          출석!!!!!!
        • 리다
          20200624
          - node.js, php, 쟝고 : 프로그래밍적으로 사용자에게 전송할 데이터를 생성한다.
          - main.js가 있는 경로로 들어와서 (cd ~) node main.js 를 실행한다.
        • Amousk
          좋은 강의 감사합니다.
        • 소눗
          tomcat은 welcome 페이지가 index.jsp , index.html이 Context 설정에 기본으로 잡혀있고
          이 코드에서
          if(request.url == '/'){
          url = '/index.html';
          }
          가 tomcat의 welcome 기능을 대신해주는 겁니다.
          대화보기
          • 2020.06.10
          • 사아
            SyntaxError: Unexpected identifier 떠서 당황했는데
            댓글보고 해결했습니다.
            질문과 답변 달아주신 분들 모두 감사합니다!
          • 김진수
            완료 b
          • 바다의왕자
            완료
          • 김재익
            완료
          • Katherine Roh
            완료 :)
          • 뭐지.....
            뭐가 잘못된거지....
          • 라온
            댓글 덕분에 localhost 띄웠네요. 감사합니다.
          • 김유민
            20.04.29.완료
          • Eunsung Shin
            완료
          • 야루
            완료
          • 알로
            수강 완료, 9행이 아니라 13행 부분을 바꿔버려서 자꾸 빈화면이 나왔었네요!! ㅎㅎㅎ 좋은 강의 너무 감사해요
          • 냉철한논리왕
            코드를 잘 살펴 보시면, 사실 지금은 이해가 잘 안되지만

            if(request.url == '/'){
            url = '/index.html';
            }

            여기에 비밀이 있는데요, 만약에 사용자가 요청한 url이 그냥 ip address 그 자체라면 (/) , index.html을 url로 해라 라는 거라서 의도적으로 index를 초기화면으로 만든거 같아요
            대화보기
            • 강윤지
              20.04.07.학습완료.
            • 20.03.08 완료
            • eddylee123456
              복습
            • eddylee123456
              완료
            • Gritter
              감사합니다!
            • 완료맨
              완료하였습니다. 감사합니다.
            • Coder가 되고싶다
              'nodejs는 웹서버도 될수있고, 브라우저 밖에서의 컴퓨터언어도 될수 있기때문에, apache와 달리, 웹브라우저의 사용자에게 자신이 원하는 대로 응답을 할 수 있다' 이렇게 이해했는데, 맞나요?
            • esteban0829
              앞에 node 라고 붙여야 되요
              (현재 디렉토리)> node (파일이름).js
              대화보기
              • 떠유니
                왜 console.log (~) 가 출력이 안될까요 ㅠ_ㅠ
              • 스티븐잡숴
                완료
              • 좋은 강의 감사합니다
              • 감사
                전에 web1 에서도 궁금했던건데 왜 그냥 localhost만 해도 index가 가장 처음 화면에 뜨는거죠
                1,2,3.html은 특별히 지정을 해줘야 뜨는데... index는 왜 디폴트죠?
              • JongHan Park
                완료
              • cd 파일경로 치신다음 하셔야 합니당!
                대화보기
                • 도전
                  node main.js를 입력하면 SyntaxError: Unexpected identifier 가 뜨는 이유가 무엇일까요?
                • 샬롬
                  완료
                • 임은정
                  와안 료오
                • 잘 들었습니다 감사합니다!
                • 딥허브
                  localhost:3000 해서 화면 안뜰때
                  저는 리액트 설치하다가 yarn 으로 했는데 안떠서 구글링하고 하다가 여기까지 봤네요
                  어찌어찌 해결해서 혹시나 같은방법으로 해결될수도 있는 분들 계실까봐 댓글달아둡니다.
                  cmd 에서 프로젝트 폴더에서 set port=5000 명령어로 포트 바꿔주고
                  다시 yarn start 하니까 해결됐습니다.
                • JT_brand
                  감사합니다
                • ELECTRON까지
                  저는 왜 console.log가 두번씩 찍힐까요...?
                • 아이랑디어
                  와우.. 대박입니다 ㅠㅠ 제가 원하던 기능인데 node.js로 할 수 있겠네요
                • 학생
                  너무 고맙습니다. 선생님.
                • 파이어뱃
                  2019_12_05 complete
                • 남기봉
                  인터넷익스플로러에서는 안되는데 , 크롬에서는 되네요.. ㅜㅜ
                • 박창신
                  수강완료
                • 강다리
                  달려요
                버전 관리
                egoing
                현재 버전
                선택 버전
                graphittie 자세히 보기