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. node study
    위 동영상에 있는 에디터는 atom 쓰신건가요?? 제거랑 좀 달라서요
  2. 파일위치도 제대로고 9행도 수정된 코드로 복붙했는데, local host에서 연결이 거부되어 숫자를 바꿔봐도 계속 안돼요,,ㅠㅠ 왜그럴까요?

    - 방금 익스플로러에서 해봤더니 되길래 다시 크롬에서 하니까 되네요?....왜 안됐던거지... 허허
  3. 소금돌
    어렵네요.
  4. 김귀인
    ㅎㅎ
  5. 코베
    코베 완료!
  6. twinpooh@gmail.com
    카렌 에델 웅 완료
  7. Jinsu Kim
    삭제 했다가. 재설치 해보니 되네요...감사합니다 .^^
    대화보기
    • Jinsu Kim
      감사합니다..재설치 해봤는데 동일하네요.ㅠㅠ 에휴..
      대화보기
      • jo_onc
        노드 js 재설치 한 번 해보세요!
        대화보기
        • Jinsu Kim
          C:\Program Files\nodejs>node C:\Works\WEB\Autoset\public_html\web2_javascript-master\main.js
          module.js:550
          throw err;
          ^

          Error: Cannot find module 'C:\Works\WEB\Autoset\public_html\web2_javascript-master\main.js'
          at Function.Module._resolveFilename (module.js:548:15)
          at Function.Module._load (module.js:475:25)
          at Function.Module.runMain (module.js:694:10)
          at startup (bootstrap_node.js:204:16)
          at bootstrap_node.js:625:3

          아.전 이런 에러가 뜨네요..ㅠㅠ 구글에서 에러 원인찾기도 힘네요. 도움 부탁드립니다.
        • BY Chin
          안녕하세요
          저는
          "사이트에 연결할 수 없음
          localhost에서 연결을 거부했습니다.
          Google에서 localhost 2000 검색
          ERR_CONNECTION_REFUSED"
          문구만 뜨는데 무엇이 문제일까요?
          참고로바탕파면에 nodejs라는폴드를 만들고 그안에
          모든 소스코드을 저장했습니다.
          cmd에서는
          > node main.js
          node main.js
          ^^^^
          SyntaxError: Unexpected identifier라고 뜨고요..

          혹시 visual studio code를 사용해서 그런가요? helloworld는 문제 없이 뜼거던요..
        • cheet0ss
          3개월이나 지난 글이지만 답변이 없어서
          호오옥시나 하는 마음에
          댓글 남겨봅니다.

          node.js 라는 프로그램을 실행시키시는 게 아니고
          index.html이라는 파일이 있는 곳에
          main.js라는 파일을 만드셨다면
          cmd.exe(명령프롬프트?)를 실행시키셔서
          해당 폴더로 이동하신 후에 거기서
          node main.js
          를 실행하시면 됩니다.

          너무 늦었지만 꼭 성공하시길 바래요
          이미 해결이 되셨다면 더 좋구요
          대화보기
          • 엔로그
            윈도우라면 방화벽, 리눅스는 netstat 으로 확인할 수 있는걸로 알아요
            대화보기
            • 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 자세히 보기