Amazon Web Services

부록 : nodejs 실습환경 구축

본 수업에서는 nodejs를 실습하기 위한 기본적인 설치 방법을 다룹니다. 보안과 같은 이슈는 포함하고 있지 않습니다. 또한 리눅스 배포판인 ubuntu를 기준으로 설명하고 있습니다. ubuntu 서버가 없는 분은 EC2를 이용해서 마련할 수 있습니다. 

nodejs 설치

아래 링크를 참고합니다. 

https://nodejs.org/en/download/package-manager/

필자는 영상에서 아래 명령을 이용하고 있습니다.  

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash - 
sudo apt-get install -y nodejs

디렉토리를 만들고 소유자를 변경합니다.  이 디렉토리에 프로젝트가 위치합니다. 

sudo mkdir /opt/o2;
cd /opt/o2;
sudo chown ubuntu /opt/o2;

npm을 사용하기 위해서 package.json 파일을 만듭니다. 모든 설정을 기본으로 해도 됩니다.(엔터를 누르면 됩니다)

npm init

웹프레임워크인 express를 설치합니다. 

npm install --save express

아래와 같이 코드를 작성합니다. 파일명은 app.js

var express = require('express');
var app = express();
app.get('/', function(req, res){
        res.send('Hello world');
});
app.listen(80, function(){
        console.log('Connect 80 port');
});

아래 명령으로 웹애플리케이션을 구동합니다. 

sudo node app.js

서버로 접속해봅니다. 

댓글

댓글 본문
작성자
비밀번호
  1. 구녹수수
    egoing님~ 제가 잘 따라하다가 express도 설치하고
    sudo node app.js를 입력해도
    events.js:160
    throw er; // Unhandled 'error' event
    ^

    Error: listen EADDRINUSE :::80
    at Object.exports._errnoException (util.js:1026:11)
    at exports._exceptionWithHostPort (util.js:1049:20)
    at Server._listen2 (net.js:1253:14)
    at listen (net.js:1289:10)
    at Server.listen (net.js:1385:5)
    at EventEmitter.listen (/opt/o2/node_modules/express/lib/application.js:617:24)
    at Object.<anonymous> (/opt/o2/app.js:6:5)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)

    구글링을 해보니까 포트를 이미 사용중이고 제가 8080하고 ^C를 안하고 그냥 나오니까 프로세스가 종료되지않아서

    다음에 8080으로 할때는 접속이 안된다는걸 알아서 kill로 해서 없앤다음에는 8080 으로connect이 됬다고 메시지가 뜨더라구요

    이게 혹시 security group 에서 HTTP port가 80 이라서 그런건가요?

    그리고 ip주소로 들어가니까 index/ 하고 파일들이나오고

    Apache/2.4.7 (Ubuntu) Server at 52.78.100.251 Port 80 이게 맨밑으로 나옵니다

    그리고 뒤에 :8080으로 작성하고 들어가려하면 막히네요 ㅜㅜ

    왜그런건가요...? 혹시 security group에서 port8080에 대한 권한을 주지 않아서 그런가요??

    여기서 계속 막히네요 ㅜㅜ

    --------------------------------------------------------------------------------------------------------------------

    구글링을 해서 해결을 했는데 이렇게 해도 무방한지 한번 확인 부탁드립니다

    Security Group에서 edit을 하여 Custom TCP rule을 하여 port range를 8080으로 지정해주니

    Hello World가 뜨더라구요 이렇게 해도 무방한건가요??

    그리고 egoing 님은 어떻게 80으로 그냥 접속이 가능하신건가요??
  2. 구녹수수
    정말 감사합니다!! 이거 고민하느라고 새벽까지 고민하다가 일어나자마자 확인하런왔는데 아침부터 정말 감사합니다...!!!
    대화보기
    • egoing
      아이고 죄송합니다. vi 보다는 nano를 쓰시는게 좋을 것 같아요.

      http://studymake.blogspot.kr......tml

      일단 vi에서는 우선 ESC를 누르고 ':' 키를 누른 뒤에 wq를 누르면 저장 종료가 됩니다.
      대화보기
      • 구녹수수
        이고잉님 너무 답답해서 이렇게 글을 남깁니다. 다 실행이 되는데
        영상에서 처럼 vi 하고 파일을 만들고.
        var express = require('express');
        var app = express();
        app.get('/', function(req, res){
        res.send('Hello world');
        });
        app.listen(80, function(){
        console.log('Connect 80 port');
        });

        이렇게 쓰면 어떻게 빠져나가나요 영상에서는 바로 나가시던데 키보드를 아무렇게 누르다 보니 자꾸 멈춰버리네오 ㅠㅠ
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기