2013.02.04 23:41

2. express 의 구성

express의 구성

express를 깔면 알아서 이런저런 것들이 설치된다. 


npm install 한 후에, 

node_modules 아래 express 와 jade 라는 폴더가 생겼다. 



node app


이 명령어는 node라는 프로그램으로 app.js를 실행시킨 것.여기에는 node의 코드가 들어있다.


app.js 소스를 보면, 


var express = require('express')

  , routes = require('./routes')

  , user = require('./routes/user')

  , http = require('http')

  , path = require('path');


express라는 모듈이 필요하고, 그 아래에 http와 path도 필요하다.. 는 뜻 (뭔 말인지 모름)


var app = express();


app.configure(function(){

  app.set('port', process.env.PORT || 3000);

  app.set('views', __dirname + '/views');

  app.set('view engine', 'jade');

  app.use(express.favicon());

  app.use(express.logger('dev'));

  app.use(express.bodyParser());

  app.use(express.methodOverride());

  app.use(app.router);

  app.use(express.static(path.join(__dirname, 'public')));

});


기본적으로 express라는 걸 만들고, 설정값을 여기에 저장해두는 것.

이 설정을 수정할 수도 있다. 예를들면 3000번 포트를 바꾸거나, 파비콘을 쓰거나 등등..


http.createServer(app).listen(app.get('port'), function(){

  console.log("Express server listening on port " + app.get('port'));

});


http 모듈이 제공하는 서버를 띄우는 명령


app.get('/', routes.index);

app.get('/users', user.list);


get 요청이 들어오면 다음 페이지로 넘겨주겠다. 는 뜻. 




그래서 routes 폴더 아래 index.js 를 보면, 


exports.index = function(req, res){

  res.render('index', { title: 'Express' });

};


request 와 response 를 파라미터로 받는다. 

여기에서 title을 수정하고, 


views 폴더 아래 index.jade 를 보면 


block content

  h1= title

  p welcome to #{title}


welcome to 라는 안내문을 바꾸면,

다음과 같이 수정할 수 있다. 


 



Trackback 0 Comment 0
2013.02.04 19:10

1. 맥에 node 설치하고 웹서버 띄우기


맥에서 '터미널'이란걸 실행시켜봤다. 
까만화면에 하얀글씨 대신 하얀 화면에 까만글씨다.
깜빡이는 곳에 "node"라고 쳐봤다. 그런거 없댄다.

http://nodejs.org 에서 바로 인스톨했다. 

Node was installed at

   /usr/local/bin/node

npm was installed at

   /usr/local/bin/npm


node와 함께 npm이라는 것도 같이 깔렸다. 

이건 Node Package Manager라고 한댄다. 


이제 터미널에서 node를 치면 node가 실행되는 것이라고.

나가는 건 ^c ^c


node라는 건 자바스크립트 소스를 분석해서 실행해주는 애.

사람들이 이미 많은 기능들을 구현해놨고, 그걸 npm에 모아놨음.


지금 하려는 건 "웹서버를 설치하는 것"

많은 기능 중에 웹서버를 설치하는 것으로 많이 쓰이는 npm 모듈은 "express"라는 것.

express라는 모듈을 npm으로 설치한다. 


npm install express


내 계정 아니라 모든 사용자 계정(global)에 하려면 

npm install express -g


어드민 계정으로(sudo: substitute user do = 다른 사용자의 권한으로 명령을 이행하라) 설치하려면 

sudo npm install express -g


비밀번호는 내 맥 어드민 비밀번호.

여기서 알 수 있는것. 맥은 리눅스니까. 


하는 동안 에러메시지가 나오면, 그 에러메시지를 읽으면 된다. 

= 에러메시지를 복사해서 구글에 넣으면 뭘 하라는건지 나온다. 


express nodestudy 

라고 치면, nodestudy라는 폴더가 생성되며 웹서버가 깔린다. 그러면서 nodestudy라는 폴더 밑에 app.js, package.json 및 public, routes, views 라는 폴더 등등 기본적으로 웹서버가 돌아가는 데 필요한 것들을 만들어준다. 


그리고, 이런 메시지가 나온다. 


install dependencies:

     $ cd nodestudy && npm install

run the app:

     $ node app


시키는 대로 한다. 

1) change directory(cd nodestudy) 하고, npm install을 하면 또 뭔가가 쭈루룩 깔린다. 

2) node app 이라고 친다. 


그러면 이런 메시지가 나온다. 

Express server listening on port 3000


브라우져에 http://localhost:3000/ 라고 친다. 


 http://localhost = 127.0.0.1


우왕!

이게 바로 웹서버가 뜬거랜다. 

생각해보면. 몇십년전에.. 리눅스를 깔고 아파치 서버를 어찌어찌 내가 뭐 하는지 모르고 깔아봤던 적이 있다. 

그때는.. 엄청난 영문문서를 프린트해놓고, 이것저것.. 암튼.. 일주일쯤 끙끙거리다가 어떻게 했는지 모르게 띄웠던 것 같은데, 겨우 명령어 5줄에 웹서버가 깔린다. 우왕. 




 



Trackback 0 Comment 1
2013.02.04 17:31

난데없이.

왜 난데없이 Node를 시작하겠다는지에 대해서부터 얘기해야 할까? 

나름대로 여러가지 맥락들이 합치되는 지점이라 다양한 시점에서의 할 얘기가 많긴 하겠지만, 당장은 내 스스로도 그것들을 글로 써낼 정도로 명확하지는 않다. 단지. 내가 워너비인 방향과, 그것을 위해 노력하고 있는 부분, 현실적인 문제(이게 정말 현실적인걸까?)와 더불어 무엇 하나도 버리지 않고 연결지을 수 있는 지점에 Node.js가 있다고 할 수 있겠다. 


요즘. 메이커를 꿈꾸고 있다. 뭐. 누구나 창작자, 모두가 예술가와 더불어 생각한다면 그 누구도 메이커가 될 수 있는거니까. 하지만 수년간 말만하고 살았던 사람이 키보드와 마우스 외의 다른 도구들을 사용하고, 이메일과 파워포인트 이외의 결과물을 만들어내는 것은 그 무엇 하나도 쉽지가 않다.


악기를 시작하니 손에 굳은 살이 배기고, 그림을 시작하니 손은 매번 더러워지고, 조각을 한다했더니 조각칼에 손을 찔린다. 어쨌든 언젠가부터 나는 무언갈 만들어내는 사람이 되고싶다는 의지가 있다. 


어렸을때는 딱 잘 할 수 있을때까지만 했다. 여럿이 같이 있는 곳에서 나는 초기 학습력이 좋다. 그 잠깐의 칭찬과 부러워하는 상황을 즐긴다. 뒤이어 노력하는 친구들이 나를 따라잡기 시작하면 나는 그것을 그만둔다. 결국 노력하는 법을 배우지 못했다. 그리고 아주 최근에서야 나는 노력하는 법을 배우기 시작했다. '노력'이 단지 고통과 인내를 가리킨다면 그 단어 대신, 흥미있는 것에 집중하도록 해서 더 재미있을 수 있게 에너지를 사용해주는 법. 이라고 고쳐쓰는 것이 좋겠다. 


뭐든 새로운 것을 배우기 시작할때는 일정한 에너지를 꾸준히, 결과가 바로 보이지 않더라도 들여줘야 한다는 걸 알게 되었고, 현재의 내 상태와 다른 사람을 비교하는 것이 아니라, 어제의 나와 오늘의 나를 비교하는 것. 이게 바로 배움과 성장의 핵심이 아닐까 한다. 


어쨌든. 최근의 나는 종이를 접고, 무언갈 자르고 붙이고, 손뜨개를 했다. 

그림을 움직이게 하는 수업과 목공방에 등록을 했으며, 그와 함께 Node도 시작한다. 

나로서는 맥락에 맞다는거지. 


그 외의 이유라면, 

지금 따라가고 있는 Codecademy의 Code-year 트랙만으로는 실제 무언갈 해보는 게 어렵기 때문에, 뭔가 현실적인 프로젝트가 필요했던 차이고, 키튼의 밝은 전망으로는 이것으로 내가 서버개발자의 역할을 수행하면서 수입을 얻을 수도 있다는 꼬심이 있었고, 나로는 서버를 알아두어서 나쁠 것은 없다는 입장인거고. 뭔가 허여멀건한 페이지가 나오게 되면 그걸 꾸미고 싶어서 HTML과 CSS를 더 팔 수 있는 계기가 되지 않을까 하는 기대와 함께. 





Trackback 0 Comment 1