====== node.js ====== ===== 설치(우분투) ===== $ sudo apt-get install nodejs $ sudo apt-get install npm $ sudo apt-get install nodejs-legacy ===== 모듈 ===== * [[programming:javascript:nodejs:express|express]] * [[programming:javascript:nodejs:pomelo|Pomelo]] * Crypto [[http://cryptojs.altervista.org/secretkey/doc/doc_aes_nodejs.html|여기]]를 참고한다. * [[programming:javascript:nodejs:mongoose|mongoose]] * [[programming:javascript:nodejs:mysql|mysql]] * supervisor global로 설치 후 ''$ supervisor server.js''로 서버를 실행하면 소스가 바뀔 때마다 스스로 서버를 재실행한다. * [[programming:javascript:nodejs:forever|forever]] * [[programming:javascript:nodejs:passport|Passport]] ===== 환경 설정 ===== 이 부분은 정리가 좀 더 필요하다. NODE_ENV 값을 변경하여 개발 / 배포 모드 중 하나를 지정해줄 수 있다. $ export NODE_ENV=production env.json 파일을 만들어서 개발 / 배포 모드에 따라 특정 값을 다르게 지정할 수도 있다.(([[http://himanshu.gilani.info/blog/2012/09/26/bootstraping-a-node-dot-js-app-for-dev-slash-prod-environment/|Bootstraping a Node.js App for Dev/Prod Environment]])) express 모듈에서 이 값을 직접 불러와서 환경 설정을 하는 포스트(([[http://inspiredjw.tistory.com/entry/Nodejs-%EC%97%90%EC%84%9C-NODEENV-%EA%B0%92%EC%9C%BC%EB%A1%9C-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0|Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기]]))가 있는데 무슨 말인지 모르겠다. ===== 아파치 - node.js 연결 ===== proxypass를 이용하면 아파치에서 node.js로 만든 페이지로 연결할 수 있다. ProxyPass /node http://localhost:8000/ 아파치 모듈을 불러오는 것도 잊지 말자. LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so Ubuntu에서는 ''a2enmod proxy proxy_http''로 모듈을 불러오고 ''a2dismod proxy proxy_http''로 모듈을 언로드할 수 있다. 위와 같이 설정하면 8000번 포트로 생성한 페이지를 {domain}/node로 접속할 수 있다. 위와 같이 서브폴더와 연결한 경우 node.js에서 절대 경로로 지정한 링크들을 ''/서브폴더/경로''로 바꾸어주어야 한다. 그리고 상대 경로로 지정한 링크들도 제대로 불러오지 못했다.(왜 그런거지?) 이를 방지하려면 서브도메인을 만들어 해당 서브도메인의 루트(/)와 node.js 어플리케이션의 포트를 연결해주면 된다. 아래는 또다른 설정 예(([[http://blog.grotesq.com/post/448|Apahce, Nginx를 node.js의 프록시로 연결하기]])) ServerAdmin {ADMIN_EMAIL} ServerName {SERVER_NAME} ServerAlias {SERVER_ALIAS} ErrorLog logs/error_log CustomLog logs/access_log common ProxyRequests off Order deny,allow Allow from all ProxyPass http://localhost:{PORT}/ ProxyPassReverse http://localhost:{PORT}/ ===== 예제 ===== * [[http://nodejs-kr.org/insidejs/archives/900|socket.io 를 활용한 실시간 survey 예제]] * [[http://wesbos.com/html5-canvas-websockets-nodejs/|Realtime HTML5 Canvas Drawing with WebSockets]] * [[http://portal.bluejack.binus.ac.id/tutorials/creatingmultiplayerwebgameusingwebsocketnodejsandsocketio-part1-serverside|Creating Multiplayer Web Game Using Websocket, Node.js, and Socket.io]] ===== Webstorm 개발 환경 설정 ===== Webstorm은 기본적으로 Node.js 디버깅 기능을 제공한다. Run - Edit Configurations 메뉴 클릭 후 대화 상자에서 + 버튼을 클릭하고 Node.js를 선택하면 된다. 설정은 다음과 같이 하면 된다. ^ Node Interpreter | Node js 설치 경로 \\ - 윈도우의 경우 대부분 C:\Program Files\nodejs\node.exe \\ - 리눅스의 경우 대부분 /usr/bin/node | ^ Working directory | Node js 프로젝트 경로 | ^ JavaScript file | Node js 프로젝트 메인 파일 | 프로젝트에 따라 Node parameters 또는 Application parameters 설정이 필요할 수 있다. [[programming:javascript:nodejs:pomelo|Pomelo]] 게임 서버의 경우 Application parameters 속성 값을 env=development 등으로 설정하면 된다. ===== 기타 참고 자료 ===== * [[http://nodeqa.com/nodejs_ref/3#YXN5bmMucGFyYWxsZWw=|async 모듈 사용]] ===== 관련 항목 ===== * [[programming:javascript:nodejs:tip|node.js 팁]] * [[programming:javascript:nodejs:event|Node.js Events]] * [[programming:javascript:jshint|JSHint]] * [[programming:javascript:tdd|Test Driven Development]] ===== 튜토리얼 사이트 ===== * [[http://www.nodebeginner.org/index-kr.html|The Node Beginner Book]] * [[http://book.mixu.net/node/|Mixu's Node book]] * [[http://nodetuts.com/|NODE TUTS - NODE.JS VIDEO TUTORIALS]] * [[http://howtonode.org/express-mongodb|익스프레스와 몽고디비를 이용하는 실전 예제]] * [[http://bcho.tistory.com/881|빠르게 훝어보는 node.js]] ===== 참고 ===== * [[http://nodejs.org/download/|node.js 다운로드]] * [[http://stackoverflow.com/questions/9831594/apache-and-node-js-on-the-same-server|Apache and Node.js on the Same Server]] * [[http://nodeqa.com|Node.js QA 게시판]]