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. 콜라
    20201013 완료
  2. homil
    2020.10.12
  3. Yong Hyun Lee
    완료 200930
  4. 0신
    완료 2020.09.27
  5. 윤병록
    20.09.22
  6. 이경희
    Node main.js 치고 나면 아무 변화가 없이 디렉토리\node main.js만 표시되고 아무 반응이 없어요.ctrl+c누르면 그냥
    디렉토리로 나오구요.
  7. helloworld
    20.9.7
  8. CodingChan
    2020. 09. 05
  9. OQ the YOUNG
    20200901완료
  10. JW_CEO
    오오~ Node JS는 처음배우는데 깔끔한 강의덕분에 쉽고 재밌게 나아가고있습니다.
  11. 마준
    완료
  12. 아이그래머
    20/08/24 완료
  13. 도하도하
    internal/fs/utils.js:269
    throw err;
    ^

    Error: ENOENT: no such file or directory, open 'C:\Users\1\Desktop\nodejs/socket.io/?X_LOCAL_SECURITY_COOKIE=&EIO=3&transport=polling&t=1597309528360-1632'
    at Object.openSync (fs.js:462:3)
    at Object.readFileSync (fs.js:364:35)
    at Server.<anonymous> (C:\Users\1\Desktop\nodejs\main.js:14:19)
    at Server.emit (events.js:315:20)
    at parserOnIncoming (_http_server.js:790:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17) {
    errno: -4058,
    syscall: 'open',
    code: 'ENOENT',
    path: 'C:\\Users\\1\\Desktop\\nodejs/socket.io/?X_LOCAL_SECURITY_COOKIE=&EIO=3&transport=polling&t=
    1597309528360-1632'
    }

    이런 오류뜨는데 왜뜨는것일까요?

    --> 포트를 8080으로 바꿨떠니 되네요 왜 3000은 안될까요? 스터디카페wifi로 연결해서 그런걸까요?
  14. 최진영
    여러분 cmd에다 ctrl c하고 node main.js 치시고 번거로우실텐데
    cmd에다가 npm install supervisor -g를 치시고
    뭔가 막 뜰텐데 끝날때까지 기다리시다가 다 끝나시면 supervisor main.js라고 그대로 치시면
    앞으로 main.js 스크립트를 수정할때마다 자동적으로 node main.js 치듯이 소스코드가 반영 됩미다
    갓갓 supervisor 쓰세오
  15. 코딩조아
    20.08.1
  16. 뚜따띠또따
    20/07/29 완료
  17. psyless
    20200724
  18. 코딩하는렌즈쟁이
    2020-07-19 (일)
    완료!
    cd C:\Users\win7\Desktop\WEB\nodejs
    node main.js
    http://localhost:3000
  19. joyfulJin
    cmd 창에서 클릭할 떄마다 url이 안 떠서 뭔가 잘못되었나 싶었는데 윈도우 기준 컨트롤 c 한번 누르면 그 동안 클릭하였던 링크들이 표시되네요 (두번 누르면 node js 종료)
  20. 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 (~) 가 출력이 안될까요 ㅠ_ㅠ
              버전 관리
              egoing
              현재 버전
              선택 버전
              graphittie 자세히 보기