NodeJS + SailsJS 소개

전체 커뮤니티에 안녕하세요! 제 이름은 브루노입니다. DesdeLinux 사용자로. 이 커뮤니티에 첫 게시물을 올릴 시간입니다 🙂

오늘 나는 당신에게 가이드를 가져옵니다 NodeJS y sails.js

Node.js를

언어를 기반으로 한 프로그래밍 환경입니다. 자바 스크립트 이벤트 지향 아키텍처로 비동기 프로그래밍에 이상적입니다. 노드는 엔진을 기반으로합니다. V8 Google의.
개발을 촉진하기 위해 많은 모듈을 작성한 활성 오픈 소스 커뮤니티를 유지합니다.
그들 중 하나는 소켓.io (서버가 클라이언트에 실시간 업데이트 (예 : GPS 추적)를 보낼 수 있음)

그것은 무엇을위한 것인가?

노드는 트래픽이 너무 커서 서버 로직과 처리량이 반드시 높지는 않은 상황을 위해 설계되었습니다. 뿐만 아니라 실시간으로 확장 성이 뛰어납니다!

왜 노드인가?

1은 오픈 소스.
2) 서버와 클라이언트 모두에서 단일 언어를 사용하는 것을 생각한 적이 있다면 여기에 해결책이 있습니다.
3) 확장 성 및 동시 발생.
4) 기타

sails.js

나는 다음과 같은 특성과 내 관점에서 코드 측면에서 가장 읽기 쉬운 돛을 선택했습니다. 눈! 있다 많은 Node를위한 프레임 워크 그대로 Express, 모난, 게디

스크린 샷-080913-13 : 21 : 50

Sails는 무엇입니까?

MVC 프레임 워크 모델을 모방 한 레일 위의 루비 (예, 올바르게 들었습니다 : D) 크고 작은 애플리케이션을 빠르고 쉽고 안전하게 만들 수 있습니다. 더욱이 최신 애플리케이션 요구 사항을 지원합니다.. 어떤 데이터베이스를 사용하든 상관 없습니다. Sails는 추상화 계층을 제공합니다., 무관심하게 선택합니다. 돛에는 다음이 있습니다.

-창조하는 능력 RESTful JSON API 자동으로.
-모듈 통합 소켓.io.
-경로 생성 자동적 인 컨트롤러를 위해.
-시스템 제공 인증 사용자 및 액세스 제어 역할 기반.
- 툴툴 거리는 소리 Task Runner (최소화, 컴파일, 테스트 등과 같은 자동 작업)
-자산 : 해당 디렉토리 (css, js)의 모든 파일은 단일 파일로 통합 및 축소, 줄이기 위해 상당히 페이지로드 및 제한된 수의 브라우저 요청.

Node.Js 설치

내가 한 turorial 주분투 13.04.

sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Sails.js 설치

안정적인 최신 버전 :
sudo npm -g install sails

이 시점에서 오류없이 새 프로젝트를 만듭니다! 😀

디렉토리 골격을 만듭니다.
sails new testProject

프로젝트에 들어갑니다.
cd testProject

서버를 시작합니다.
sails lift

으 으으으 으으으! 우리는 들어갔다 http://localhost:1337/

스크린 샷-080913-13 : 02 : 34

디렉토리 구조는 다음과 같아야합니다.
스크린 샷-080913-13 : 07 : 57

API :
-드라이버
-어댑터
-모델
-정책
- 서비스

자산:
-이미지
-js
-스타일
파비콘
로봇

구성 :
- 현지
404.js, 500.js… ..
route.js
세션.js
sockets.js …… ..

NODE_MODULES :
-ejs (템플릿 엔진)
-끙끙 거리다
-낙천주의 자
-돛 디스크

견해:
-홈 (여기에 루트 템플릿, localhost가 있습니다)
-404.ejs
-500.ejs
-layout.ejs (레일을 사용하는 사용자의 경우 layouts.ejs가 같은 layouts.html보다. *)

EJS (Embedded Javascript) 템플릿 엔진이지만 유일한 것은 아닙니다. 특히 JADE가 더 좋아요

END

지금까지 제 지식과 많은 사람들에게 도움이 되었기를 바랍니다. 누에 보 이 기술에서 건설적인 비판은 환영하다 ????

이 포스트는 제가 일종의 심리 사회적 네트워크를 개발하고 있기 때문에 (다른 세계에서 온 것이 아닙니다) 그렇게하려고했습니다. 와 학습 목적및 리소스가 거의 없습니다. 아이디어는 또한 그것을 지원하는 홈 서버를 만드는 것입니다 (반드시 튜토리얼을 만드십시오.) 전에 말했듯이 자원이 적기 때문에 최적화 매우 중요합니다. (그렇지 않아도 ^^)


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   아서 쉘비

    많은 사람들이 성능 저하 (구성없이) 유행을 선도하는 코드 정리로 인해 RoR을 싫어하지만 RoR을 얼마나 충실하게 에뮬레이션하는지에 놀랐습니다.

    이 주제는 매우 흥미 롭습니다. 계속해서 발전 시키 셨으면합니다. 축하합니다.

    1.    나노

      저는 RoR을 정말 싫어하지 않습니다. "같은 일을 할 수있는 방법이 많다"는 루비의 철학은 일반적으로 문제가됩니다. 많은 경우 당신은 모든 사람들이 같은 일을하는 다른 방법으로 반응하고 당신은 더 혼란스러워지는 경향이있는 작은 문제가 있습니다. D :

      이 Node 용 프레임 워크에 관해서는 거대하거나 큰 것이 아니기 때문에 Node는 Django와 같은 다른 프레임과 함께 특정 작업에 사용됩니다. Mejorando.la의 예는 이렇다고 생각하며 전체 사이트를 구축하고 관리합니다. 장고의 데이터 기반이지만 실시간 문제는 Node에 맡겨져 있지만 확실하지 않아서 그것에 대해 너무 많이 말할 수는 없습니다.

      1.    자민 사무엘

        나는 그것이 당신이 말하는 방식이라고 생각합니다, 그들은 사이트의 기반으로 Django를 사용하고 실시간으로 사물을 위해 Node를 사용합니다 ... 글쎄요, 적어도 그것이 항상 freddy vega가 말하는 것입니다.

        1.    브루노 카시오

          NodeJS는 Django, PHP 또는 ruby와 다릅니다. 그러나 Apache, Nginx 등과 같은 서버입니다.

          Sails는 웹 애플리케이션을 생성하기 위해 socket.io와 같은 일부 모듈과 함께 nodejs 및 express (다른 프레임 워크)를 사용하는 프레임 워크입니다.

          안녕하십니까!

          1.    Arnoldo RLF

            따라서 Django에서 Python 페이지가있는 nodejs로 만든 채팅을 포함하려면 (proving.la 예제를 계속하기 위해) 프레임을 사용하거나 아파치에 할당해야합니다 (이 경우 어떤 서버가 파이썬을 사용하는지 알 수 없음) 경로 http://miweb.com ya node.js http://miweb.com/chat 그들과 소통

  2.   자민 사무엘

    정말 흥미 롭군요….

    내가 끝내지 않은 것은 왜 Node JS가 웹에 사용됩니까?

    1.    Arnoldo RLF

      이는 실시간 (요청이있을 때뿐만 아니라 항상 통신하는 애플리케이션)이라는 장점을 가진 아파치의 대안입니다.

      1.    데이비드 고메즈

        NodeJS는 Apache, NGINX 또는 다른 웹 서버에 대한 대안 (또는 대체)이 아닙니다. NodeJS는 서버용 JavaScript 인터프리터로, Java, Python, Ruby 또는 PHP와 같은 언어를 사용해야하는이 언어로 애플리케이션을 만들 수 있습니다.

        1.    브루노 카시오

          예, 제가 잘못 표현했을 수도 있습니다. 내가 전달하고 싶은 것은 node.js가 자체 서버를 실행하고 타사 (apache, nginx, cherokee 등)가 필요하지 않다는 것입니다.

          안녕하십니까!

  3.   Arnoldo RLF

    아주 좋아, 더 많은 튜토리얼이 node.js를 따라 가고 실시간으로 무언가를 할 수 있기를 바랍니다.

    1.    브루노 카시오

      다음은 Koans를 통해 Node.js를 소개하는 200 페이지 분량의 책입니다. 그것은 Node.js에 들어가고 헤더 프레임 워크로 Express를 사용하여 제기 된 문제의 일부 (예는 twitter)의 "해결책"을 가지고 있습니다. ..

      http://nodejskoans.com/

      추신 : 돛은 Express 기준으로 만들어지며, 보통 대부분이 그렇습니다.

      안녕하십니까!

  4.   엘라 브

    훌륭한 공헌 Bruno .. 환영합니다 😀

    1.    브루노 카시오

      여러분과 커뮤니티 전체에 감사드립니다 🙂 인사말!

  5.   오로스Zx

    매우 흥미로운 브루노 🙂

    1.    브루노 카시오

      당신을 감사하십시오!

  6.   스폰지 여자

    훌륭한 기사. 감사합니다.

    현재 일부 프로젝트에서 돛을 사용하고 있습니다. 가능한 경우 돛의 역할 기반 액세스 제어에 대한 자세한 정보는 스페인어로, 그렇지 않은 경우 영어로 어디에서 얻을 수 있는지 물어보고 싶습니다. 내 페이지 중 하나에 액세스 제어를 추가하고 싶지만 특정 경로의 일부 사용자와 다른 경로의 다른 사용자에 대한 권한을 설정하고 싶습니다. 돛으로 가능합니까? 나는 그것에 대한 많은 정보를 찾을 수 없습니다.

    기사 주셔서 감사합니다.

    인사
    엘비라.

    1.    브루노 카시오

      안녕하세요 Elvira!

      Sailsjs 또는 기타 프레임 워크에서 언급 한 내용과 관련하여 제안하는 내용은 데이터 모델링 및 시스템이 부과하는 제한 사항과 관련이 있습니다.

      다른 권한을 가진 "그룹"(역할)과 같은 것을 만들고 각 사용자를 그 중 하나에 연결할 수 있습니다.

      특히 돛에서는 "정책"이라고하며 여기에서 확인할 수 있습니다. http://sailsjs.org/#/documentation/concepts/Policies

      귀하의 의견에 대한 인사와 감사합니다!

      1.    스폰지 여자

        브루노 정말 감사합니다. 귀하의 프롬프트로 우아한 해결책을 찾았습니다. 인사