14

過去に node.js、express、angular.js を使用して Web アプリを作成しました。新しいプロジェクトを開始しており、MongoDB も使用したいと考えています。それがMEANスタックになります。MEAN だけを使用して、http: //mean.io/でプロジェクトを開始できます。

さて、私は過去に REST API を書いたことがあり、sails.js について聞いたことがありますが、これは非常に魅力的です。REST API を自動的に作成できます。

私の質問は、MEAN スタックと Sails.js を使用して新しいプロジェクトを開始するには、どのような手順に従うのですか?

オプション:

  1. mean.io スタックのクローンを作成し、npm install を実行してから npm install Sails.js を実行しますか?
  2. または、sails.js には、ディレクトリ構造に対して何をすべきかについて独自の考えがあるようです。では、sails.js の指示に従ってhttp://sailsjs.org/#!getStartedをインストールしてから、npm で Angular と Mongo をインストールしますか? (sails.jsには独自のORMであるwaterlineがあるため、Mongooseは必要ないと思います)。

今日は実際にオプション 2 を試してみますが、他の人にどのような手順が有効であったかを教えていただければ幸いです。

どうもありがとうございました!

4

2 に答える 2

14

あなたは と で正しい道を進んでいnpm install -g sailsますsails new myproj。mongo を使用したいので、mongo 用のウォーターライン アダプターを(プロジェクト ディレクトリに)インストールし、mongonpm install sails-mongo --saveを使用するように帆を構成する必要があります。

config/adapters.js ファイルに mongo 構成を追加します。

module.exports.adapters = {
  'default': 'mongo',

  mongo: {
    module   : 'sails-mongo',
    host     : 'localhost',
    port     : 27017,
    user     : 'username',
    password : 'password',
    database : 'your mongo db name here',

    // OR
    module   : 'sails-mongo',
    url      : 'mongodb://USER:PASSWORD@HOST:PORT/DB',

    // Replica Set (optional)
    replSet: {
      servers: [
        {
          host: 'secondary1.localhost',
          port: 27017 // Will override port from default config (optional)
        },
        {
          host: 'secondary2.localhost',
          port: 27017
        }
      ],
      options: {} // See http://mongodb.github.io/node-mongodb-native/api-generated/replset.html (optional)
    }
  }
};

さらに、API を作成するには、(プロジェクト dir で) sails generate NAMEwhereNAMEはモデルの名前を使用します。デフォルトでは、何でもデータベースに追加できるため、プロパティ/フィールドを制限し、場合によってはそれらを検証することもできます。それは簡単です。generate コマンドによっていくつかのファイルが作成されました。そのうちの 1 つがmodels/NAME.js. このファイルでは、必要なフィールドに対応する属性と、保存する前に必要な制限/検証を含むオブジェクトを簡単にエクスポートできます。

// Person.js
var Person = {
  attributes: {
    firstName: 'STRING',
    lastName: 'STRING',
    age: {
      type: 'INTEGER',
      max: 150,
      required: true
    }
    birthDate: 'DATE',
    phoneNumber: {
      type: 'STRING',
      defaultsTo: '111-222-3333'
    }
    emailAddress: {
      type: 'email', // Email type will get validated by the ORM
      required: true
    }
  }
};

module.exports = Person;

このページには、使用できるさまざまなタイプと検証がすべてリストされています。

すべての設定が完了したら、実行sails liftしてサーバーを起動します。デフォルトのポートは 1337 ですが、PORT 環境変数またはローカル構成で変更できます。

module.exports = {
    port: 80
    // ... more config things
}

また、MEAN の「A」については、Angular Sailsをご覧ください。これは、sails が行っている socket.io を簡単に利用できるようにするための小さな角度付きサービスです。ソケット接続を介してすべての API を呼び出して、API をさらに軽量かつ高速にすることができます。

この場合$sails$http

app.controller("FooController", function ($scope, $sails) {
    $scope.bars = [];

    $sails.get("/bars", function (data) {
      $scope.bars = data;
    });
});
于 2014-02-02T04:46:28.507 に答える