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. netstat -a -o
    대화보기
    • 고스트프리
      포트 : 3000이 이미 어딘가 쓰인다는 걸 알아낼수있는 방법있을까요?
      2000으로 바꾸니까 되네요...
    • 치킨
      ㄳㄳ
      대화보기
      • 초급자
        계속 사이트에 연결할 수 없음 이라고 뜨는데 왜 이러는 걸까요? 코드도 그대로 붙여 놓고 node 실행도 파일이 있는 디렉토리에서 실행되었는데요 그렇네요.
      • 삼고잉
        잘봤습니다
      • 이나윤
        node main.js

        하고 localhost:3000 들어가면 빈화면으로 뜨는데 해결방법좀 알려주세요 ㅠㅜ 폴더도 맞게 들어갔고 파일도 그대로 받았습니다..

        ->이게 맞는지는 모르겠지만 web 시리즈를 공부하면서 bitmami를 깔았었는데 들어가서 서버 다 끄고 하니까 됐어요!
      • nodejs를 공부하다보니 궁금한게 생겼는데요
        php는 apache를 설치해서 공유기 dns를 이용하면 집에서 웹서버를 운영 가능하잖아요.... 다른 기기에서 사이트 접속도 가능하고요..
        nodejs도 가능한가요??
        안되면 nodejs는 호스팅업체의 도움을 받는 방법 밖엔 없나요?
      • nomadlife
        저도 타이핑했더니 에러나길래 다시 봤더니,, 슬래쉬 역슬래쉬를 바꿔서 넣었었네요,, ㅎㅎ
        대화보기
        • 복붙하면 되는데 직접 똑같이 타이핑 쳐서 하면 안되네요,,ㅠㅠ,,
        • J Gong
          저는 아래와 같이 뜹니다. 포트 넘버를 여러번 바꿔 보았지만 같아요.
          이럴 경우에는 어떻게 해야 하나요~? ㅠㅠ

          This site can’t be reached
          localhost refused to connect.
          Search Google for localhost 3000
          ERR_CONNECTION_REFUSED
        • 감사합니다.
        • n1tjrgns
          그리고 자꾸 atom이
          the edito has crashed라면서 작동이 멈추는데 이유가 뭘까요...
          에러코드도없고 그냥 켜놓고 일정시간이 지나면 에디터가 말썽이네요..
        • n1tjrgns
          main.js 까지 작성을 한 후에

          node main.js를 입력할 때
          node.js exe에서 입력을 하면 Unexpected identifier 에러가뜨는데
          node.js command prompt에서 하면 되는데
          왜 그런건가요??
          node.js에서 동작이 되어야하는거 아닌가요??
        • 감사합니다ㅠㅠㅠ 됩니다ㅎㅎㅎ
          대화보기
          • egoing
            이미 3000번 포트에서 무엇인가 실행되고 있다는 뜻이에요.

            app.listen(3000); 의 3000을 다른 수로 바꿔보세요.
            대화보기
            • mayoui-MacBook-Pro:nodejs yohan$ node main.js
              events.js:183
              throw er; // Unhandled 'error' event
              ^

              Error: listen EADDRINUSE :::3000
              at Object._errnoException (util.js:992:11)
              at _exceptionWithHostPort (util.js:1014:20)
              at Server.setupListenHandle [as _listen2] (net.js:1355:14)
              at listenInCluster (net.js:1396:12)
              at Server.listen (net.js:1480:7)
              at Object.<anonymous> (/Users/yohan/Desktop/nodejs/main.js:15:5)
              at Module._compile (module.js:652:30)
              at Object.Module._extensions..js (module.js:663:10)
              at Module.load (module.js:565:32)
              at tryModuleLoad (module.js:505:12)


              //이렇게 에러가 뜨는건 왜 그런걸까요?ㅠㅠ 이거 때문에 진도를 못나가고 있네요
            • 바다의왕자
              음..node웹서버를 활성화하는게 cmd에서 node 실행하고 node main.js를 하면되는건가요?

              node main.js
              ^^^^

              SyntaxError: Unexpected identifier


              해결 방법은요?

              여기서 막혀 진행을 할 수 없습니다.
            • 기존 노드 강의에서 app.get(url)로 받는거랑
              request.url == 로 받는거랑
              무슨 차이인가요??
            • egoing
              잘 하셨습니다!
              대화보기
              • 박꽁치
                음..node웹서버를 활성화하는게 cmd에서 node 실행하고 node main.js를 하면되는건가요?

                node main.js
                ^^^^

                SyntaxError: Unexpected identifier

                이렇게 뜨고, 아니나 다를까 크롬에서 localhost:3000 하니까 사이트에 연결할 수 없음 나오네요

                ---------------- 해결했습니다~ cmd에서 해당 파일들이 있는 폴더로 이동해서 명령어 입력하니 되네요!
              • Seo Yun Seok Tudoistube
                이렇게 핫한 강의를 왜 15명 밖에 못봤을까요?
                아마도 꼭 회사를 다니지 않아도 우리가 하루동안에 처리할 정보의 양이 너무 많은게 이유인거 같습니다.
                감사합니다.
              • Hyunki Yu
                >node 를 통해 노드콘솔로 진입하면 나오는방법을 몰라 한참을 헤매었네요
                ctrl + c 를 두번누르면 다시 명령프롬프트로 나올수있습니다.
              버전 관리
              egoing
              현재 버전
              선택 버전
              graphittie 자세히 보기