생활코딩

Coding Everybody

코스 전체목록

닫기

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. 코코
    24.02.20
  2. Sansol Park
    Codeanywhere는 웹 기반의 코드 편집기로, 여러 가지 프로그래밍 언어를 지원하며 파일 및 디렉토리를 추가하는 기능을 제공합니다. 파일을 추가하는 방법은 아래와 같습니다:

    Codeanywhere를 연 후, 파일을 추가하려는 프로젝트 또는 디렉토리를 찾아 클릭합니다.
    찾은 프로젝트 또는 디렉토리를 우클릭하면 컨텍스트 메뉴가 열립니다.
    컨텍스트 메뉴에서 'New File'을 선택하면 새 파일이 추가됩니다.
    새로 생성된 파일의 이름을 변경하려면 파일을 우클릭하고 'Rename'을 선택한 후 원하는 이름을 입력하고 Enter 키를 누르면 됩니다.
    참고로, 'New Folder' 옵션을 선택하면 새 디렉토리를 생성할 수 있습니다. 이렇게 Codeanywhere에서는 간단한 몇 단계만으로 파일 및 디렉토리를 추가할 수 있습니다.

    GPT-4의 답변입니다.
    대화보기
    • Sansol Park
      다른 컴퓨터에서 웹서버에 접근하지 못하는 문제는 일반적으로 네트워크 설정, 방화벽 설정, 또는 IP 주소와 포트 번호 지정 문제 등에 의해 발생할 수 있습니다.

      네트워크 설정: 서버가 실행되는 컴퓨터와 접속을 시도하는 컴퓨터가 같은 네트워크에 있는지 확인해야 합니다. 또한, 서버 컴퓨터의 IP 주소가 올바르게 설정되어 있는지 확인해야 합니다.

      방화벽 설정: 서버 컴퓨터의 방화벽 설정이 외부 접속을 허용하도록 설정되어 있는지 확인해야 합니다. 특히, Node.js가 사용하는 포트(위 예시에서는 3000)가 방화벽에 의해 차단되지 않았는지 확인해야 합니다.

      IP 주소와 포트 번호: Node.js 서버를 실행할 때 IP 주소와 포트 번호를 올바르게 지정해야 합니다. 일반적으로, 로컬 네트워크에서만 접근 가능한 서버를 실행할 때는 'localhost' 또는 '127.0.0.1'을 사용하지만, 외부 네트워크에서 접근 가능한 서버를 실행할 때는 실제 IP 주소를 사용해야 합니다.

      위의 문제들을 확인해보시고, 여전히 문제가 해결되지 않는다면 추가적인 정보(예: 서버 및 클라이언트의 운영체제, 네트워크 설정, 방화벽 설정 등)를 제공해 주시면 더 구체적인 도움을 드릴 수 있을 것 같습니다.

      GPT-4의 답변입니다.
      대화보기
      • 김철흥
        2024.01.08
        완료!
      • Hoon Ko
        20231015
      • Hoon Ko
        20231015
      • carpediem
        23.09.02 완료!
      • Sansol Park
        9행의 수정 이유는 favicon.ico 요청에 대한 처리를 올바르게 하기 위함입니다.
        주어진 코드에서, 9행의 return response.writeHead(404);는 즉시 404 응답 코드를 반환합니다. 그러나 이렇게 작성하면 응답 헤더만 전송되고, 응답 본문을 전송하지 않습니다.
        이를 수정하기 위해, 원래 코드를 분리하여 응답 헤더와 응답 본문을 한 줄로 작성하지 않고 각각 작성합니다. 변경한 코드에서는, response.writeHead(404);로 404 응답 헤더를 전송하고, 바로 다음 줄에서 response.end();를 호출하여 응답 본문을 종료하고 전송합니다.
        따라서 웹 브라우저 상에서 favicon.ico 파일이 없어도 페이지에 올바르게 접근할 수 있습니다.
        대화보기
        • helloworldjs
          9행을 수정해야 하는 이유는 무엇인가요?
        • 어흥
          23.06.26
        • 나그네
          강좌 잘 보고있습니다....감사합니다..
          근데 자체 리눅스 서버의 브라우저에서는 화면이 나오는데...
          다른 컴퓨터에서는 웹서버를 찾지를 못하네요...
          뭘 잘못한걸까요?....도와주세요...
        • shady00
          Atom으로 안하고 Codeanywhere 에서 하고 있는데
          Codeanywhere에서는 파일추가(6개파일) 어떻게 하는건가요??
        • 백대진
          0223-01-18 완
        • Darcy
          recap하러 왔어요 ~
        • 2022.12.27
        • 감자
          22.11.30 완료
        • 드가자
          g하하
        • 당당
          2022.10.14
        • sosoCoding
          2022.09.20 료완
        • 뿔고래
          nodejs는 만능인 것 같다.
        • Sukjoon Lee
          2022.08.11
        • i_am_es
          2022-08-04
        • 아캔두잇
          20220804 완료
        • 돈버는기계왕
          localhost 3000이 사용중이라서 그럴 겁니다.

          다른 수업들으면서 3000을 사용한채로 키고 오신거 같은데요
          대화보기
          • 키다리아저씨
            220714 완
          • toonfac
            220704 오전 2시 34분 완료
          • LLLEE
            22.06.23 완료 맨날 리액트 실행시킬때 yarn start로 무지성으로 했는데 그 근본이 이거 였군요. 재밌네요. 좋은 강의 감사합니다.
          • 이성훈
            2022/06/22 벌써 흥미롭네요! c언어 구조체 배우다가 하니까 너무 재밌어요~
          • yjchun26
            2022/03/27 완료
          • 코지마 히데오 뺨 후릴 반바지
            마지막 부분이 이해가 잘 안간다. 일단은 계속 진행해보면서 이해해볼려고 한다.
          • chloekim66
            이강의랑 웹애플리케이션만들기랑 뭐가다른건가요 ???
          • Scia
            저는 9행 수정하라는거 안 해도 되던데...
            왜 수정해야하는 건지 아시는 분 있으신가요?
          • 화려하게간다
            호우 슬슬 ㅋㅋㅋㅋㅋㅋㅋ
          • 밍기
            2022-01-06 완료
          • 소설가
            2021-12-30 완료
            고맙습니다.
          • guma
            맥 터미널에서 폴더경로이동은 cd (change directory)

            cd desktop/상위폴더/하위폴더 해서 본인이 저장한 폴더로 이동 후
            node main.js 하면 사이트 표시됨
          • 김관호
            2021.11.23
          • 솔나무
            예에
          • 칸타타
            저걸 아통에서 해야하는지 비주얼스튜디오에서 해야하는지요?
          • 동넝이
            21.10.11 완료
          • mijien0179
            궁금한게 있어요, 파비콘을 호출할 때 404 not found 코드를 넣는데, 왜 그런건가요? 아직 따로 파비콘을 지정하지 않은 상태라서 그런건가요?
          • 야옹스
            20211009!
          • inventorh
            2021.10.3 좋은강의 감사합니다
          • 20 단붕
            21.09.30
          • pdpd
            210921 달리자
          • 전해성
            21.09.12 완료
          • 졸작완성하자
            21.09.05 완료
          • 코딩하는 배달이
            엄청납니다
          • 고영히
            210818 완료
          • Kangmin Kim
            21.08.14 완료
          버전 관리
          egoing
          현재 버전
          선택 버전
          graphittie 자세히 보기