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. 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

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

    혹시 visual studio code를 사용해서 그런가요? helloworld는 문제 없이 뜼거던요..
  3. 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 자세히 보기