の意味

このチュートリアルでは、ユーザーが入力またはカスタマイズする必要のある行はになります。

残りはほとんどコピーアンドパスタブルである必要があります。

Sails.jsとは何ですか?

Sails.jsを使用すると、カスタムのエンタープライズグレードのNode.jsアプリを簡単に作成できます。 これは、Ruby on RailsのようなフレームワークのMVCパターンを模倣するように設計されていますが、最新のアプリの要件をサポートしています。スケーラブルでサービス指向のアーキテクチャーを備えたデータ駆動型APIです。 チャット、リアルタイムダッシュボード、またはマルチプレイヤーゲームの構築に特に適しています。

言い換えると、Sails.jsを使用すると、Model-View-Controllerパターンを使用してNode.jsでアプリを簡単に作成し、コードを整理して保守を容易にすることができます。 Sails.jsは、モデルとコントローラーの作成を自動化するためのさまざまなコマンドを提供し、時間を節約し、アプリをより高速に作成できるようにします。 (ビューは、テンプレート/views/:controller/:method.ejsの/ viewsディレクトリに手動で作成する必要があります)。 さまざまなテンプレート言語を使用できますが、EJSがデフォルトであり、EJSを使用するのが最も安全で簡単です。

Sails.jsにはさまざまな「アダプター」もあり、アプリで使用するほぼすべてのデータベースを使用できます。 これにより、MongoDBの使用を要求する他のMVCフレームワークとは異なり、最大限の柔軟性が得られます。

これらすべてと、デプロイ時にすべてのファイルが連結されて縮小されるという事実は、アプリを構築するためにメインフレームワークを設定するのに多くの時間を費やす必要がないことを意味します。これは、すべて準備ができて簡単だからです。使用します。

UbuntuVPSへのNode.jsのインストール

  1. 前提条件のインストール:
    sudo apt-get install python-software-properties python g++ make

    Ubuntu 12.10を使用している場合は、次のことも行う必要があります:

    sudo apt-get install software-properties-common
  2. Joyent(Node.jsのメンテナ)が推奨するPPAリポジトリを追加します:
    sudo add-apt-repository ppa:chris-lea/node.js
  3. パッケージリストを更新します:
    sudo apt-get update
  4. Node.jsをインストールします:
    sudo apt-get install nodejs

Sails.jsのインストール

セールの最新の安定したリリースをインストールするには、以下を実行する必要があります。

sudo npm install sails -g

-gフラグは、セールがグローバルにインストールされ、コマンドラインツールとして使用できることを保証します。

Sailsアプリの作成

アプリを配置するディレクトリに移動する必要があります。例: /var/wwwそして実行:

sails new project-name

これにより、必要なファイルがプロジェクトに追加され、project-nameという名前のディレクトリが作成されます。

Sails.jsサーバーの起動

ボイラープレートアプリを表示するには、ディレクトリをプロジェクトディレクトリに変更してから、サーバーを起動する必要があります。

cd project-name

それから:

sails lift

これにより、 123.456.78.90 :1337で実行されるサーバーが作成され、ページは次のようになります(数回変更されているため、この記事を読んでいる時期によっては異なる場合があります) )::

Sails.js Welcome

コントローラの作成

コントローラの作成は簡単です。sailsCLIがすべての難しい作業を行います。 例えば メソッド「index、show、edit、delete」を使用して user というコントローラーを作成するには、次のコマンドを実行するだけです。

sails generate controller user index show edit delete

これにより、api/controllersUser Controller.jsというファイルが作成されます。このファイルは次のようになります(関数の機能と動作に関するヒントを提供します)。

/*---------------------
        :: User
        -> controller
---------------------*/
var UserController = {
  
  // To trigger this action locally, visit: 'http://localhost:port/user/index'
  index: function(req,res) {
      
        // This will render the view: /var/www/sails-test/views/user/index.ejs
        res.view();

  },

  // To trigger this action locally, visit: 'http://localhost:port/user/show'
  show: function(req,res) {
      
        // This will render the view: /var/www/sails-test/views/user/show.ejs
        res.view();

  },

  // To trigger this action locally, visit: 'http://localhost:port/user/edit'
  edit: function(req,res) {
      
        // This will render the view: /var/www/sails-test/views/user/edit.ejs
        res.view();

  },

  // To trigger this action locally, visit: 'http://localhost:port/user/delete'
  delete: function(req,res) {
      
        // This will render the view: /var/www/sails-test/views/user/delete.ejs
        res.view();

  },

};
module.exports = UserController;

モデルの作成

モデルの作成は、Sails.jsを使用してコントローラーを作成するのと同じくらい簡単です。 心配するデータベースの移行はありません。Sails.jsがすべてをインテリジェントに実行します。 デフォルトのファイル内データベース、MySQL、または他の多くのデータベースタイプを、作成者’ sGitHubリポジトリを検索または検索することで見つけることができる「アダプター」を介して使用できます。

モデルを作成するときに、[name]:[type]の形式で、後で追加することにより、そのモデルに追加するフィールドを指定できます。

例えば 「名前、電子メール、パスワード」フィールドを持つ user というモデルを作成するには、次のコマンドを実行するだけです。

sails generate model user name:string email:string password:string

これにより、api/modelsUser.jsというファイルが作成されます。このファイルは次のようになります。

/*---------------------
        :: User
        -> model
---------------------*/
module.exports = {
    attributes: {
        
        // Simple attribute:
        // name: 'STRING',

        // Or for more flexibility:
        // phoneNumber: {
        //    type: 'STRING',
        //    defaultsTo: '555-555-5555'
        // }

        name: {
            type: 'STRING'
        },

        email: {
            type: 'STRING'
        },

        password: {
            type: 'STRING'
        },

    }
};

ブループリントAPIの作成

コントローラとモデルを同時に生成できます。また、 / user にアクセスして、保存されているデータの生のjson表現を表示できるBlueprintAPIを生成することもできます。

sails generate user

Blueprint APIは、モデルとコントローラーの間に接続を作成することで短期的に時間を節約し、そのルートを使用してデータベースに新しいレコードを追加できるようにします。 http:// localhost / user / create?name = John + Smithにアクセスすると、「John Smith」という名前の新しいユーザーが作成され、その中で作成されたすべてのレコードのJSON配列が出力されます。モデルなので、前のURLは次のように出力されます。

{"name":"John Smith","createdAt":"2013-07-10T20:10:01.038Z","updatedAt":"2013-07-10T20:10:01.038Z","id":1}

実際には、コントローラーに新しいメソッドを変更または追加する必要がありますが、すべての新しいコントローラーには、デフォルトでcreate()、find()、findAll()、update()、およびdestroy()メソッドがあります。 ただし、これらをオーバーライドして、無効にしたり、単にカスタマイズしたりすることができます。

挿入するデータのJSON文字列を使用してPOSTリクエストを実行することで、データを入力することもできます。

{
  name: 'John Smith'
}

ルートの追加

config/routes.jsを開くと、ルートを追加できます。 このファイルはコメントを使用して非常によく文書化されているので、画像を追加するだけで、説明するのではなく、画像を追加するだけでよいと思います。

Sails.js routes.js

サーバーを本番モードに設定する

アプリを本番環境にデプロイする準備ができたら、ポート1337から80に移動すると、Sails.jsを使用してこれを簡単に行うことができます。

  1. config /application.jsを開きます。
  2. これがサーバー上の唯一のアプリである場合: 7行目で:
    port: 1337,

    port: 80,

    に変更します

  3. サーバーに複数のアプリがあり、NGINXを実行している場合:サーバーブロック構成を変更して、Sails.jsアプリが実行されているポートをプロキシするように追加する必要があります:
    location / {
        proxy_pass         http://127.0.0.1:1337/;
        proxy_redirect     off;
    
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    

    }

    (Sails.jsのポートを1337のままにします)

  4. サーバーに複数のアプリがあり、Apacheを実行している場合:次を追加してSails.jsアプリが実行されているポートをプロキシするようにvhost構成を変更する必要があります: [ X202X](Sails.jsのポートを1337のままにします)
  5. 15行目で、
    environment: 'development',

    environment: 'production',

    に変更します。

  6. forever を実行してインストールします:
    sudo npm install -g forever

    Foreverは、ターミナルを常に開いたままにすることなく、アプリをバックグラウンドで実行できるようにするnode.jsパッケージです。

  7. forever start /path/to/app.js

    を実行して、バックグラウンドプロセスを開始します。 forever list と入力すると、アプリがバックグラウンドで実行されていることを確認できます。 これにより、実行中のすべてのnode.jsプロセスが一覧表示されます(各アプリはサーバー上でプロセスとして実行されます)

投稿者:Rob Brazier