Kraken jsがあなたを連れて入門して構成する例を構築します.

8547 ワード

もっと読む
 
 
一.KrakenJSの由来
Paypalは他の支払サービス業者に対抗するために、切実な高速開発の需要があります.
最初の時に、PaypalはNodejsを高速開発モデルとして使用しました.
内部にはNodejsを採用した新しいプロジェクトがますます多くなりました.KrakenJS–Expressに基づいてウェブアプリケーションを迅速に開発できるNodejsフレームがあります.
KrakenはExpressに基づいて、ExpressはNodeJSが最も流行っているWeb開発の枠組みです.
ExpressはConnectに基づき、Connectはhttpモジュールに基づくツールセットです.
Node原生のhttpモジュールからConnectまで、Expressに行って、最後にKrakenに行きます.毎回は前のパッケージで、毎回パッケージは特定の開発者により便利な開発技術を提供しています.
どうしてKrakenJSを使いますか?
現在最も流行っているNodeJS WebフレームExpressに基づいていますが、構造はより明確で合理的で、MVCの開発思想にもっと合致しています.
/config、保存アプリケーションと中間部品構成/controllers、コントローラ/lib、開発者がカスタマイズしたライブラリファイルと他のコードを保存します.
/locars、特定言語の内容/モデル/public、公共のネットワークリソース//public/templates、サーバとブラウザ端テンプレート/test、保存ユニットと機能テスト用例などのindex.js、アプリケーション入り口ファイルjson配置ファイルは、生産環境と開発環境の迅速な切り替えに便利です.web開発に便利なツールセットと独立したプラグインが提供され、交換しやすいです.Lusca:安全モジュールKappa:NPMエージェントプラグインで、npmプライベートライブラリを実現できます.And son...krakenはLinkdInメンテナンスのDustを持参しています.もっと簡単でよく使われるJadeに両替したいなら、a.package.jsonのdependenciesにjade依存を追加し、npm install b.config/ap.jsonのvide engine構成をjade 24797 cに変更する必要はありません.
三.快速入門
インストーラ
npm install -g generator-krakennode
一つのプロジェクトyo kraken を生成する.
起動サーバnpm start またはnode index.js 四.いくつかの試み
ユーザー照会サービスを追加します.1).データベースaを構成します.mongose bをインストールします.config/ap.json
"express":{
    "view engine": "jade"
 }
cを配置します.lib/database.jsを作成して、mongo接続を初期化します.
"databaseConfig": {
  "host": "localhost",
  "database": "test"
}
d)イニシャル設定コードをindex.jsに追加するvar db = require('./lib/database');configureメソッドにnext(null)メソッドの前に追加します.db.config(nconf.get('databaseConfig'));2)models/user.jsを作成する
'use strict';
    var mongoose = require('mongoose');
    var db = function(){
      return {
        config: function(conf){
          mongoose.connect('mongodb://' + conf.host + '/' + conf.database);
          var db = mongoose.connection;
          db.on('error',console.error.bind(console,'connection error:'));
          db.once('open',function callback(){
            console.log('db connection open');
          });
        }
      };
    };
    module.exports = db();
3)controllers/user.jsを作成する
'use strict';
var mongoose = require('mongoose');
var userModel = function(){
  var userSchema = mongoose.Schema({
     userid: Number,
     name: String,
     hometown: String
  });
  return mongoose.model('dynamic',userSchema);
};
module.exports = new userModel();
統計要求のサービスを書きます.Connect/Expressには中間部品の概念があります.中間部品を使用して、AOPまたはブロッカーのようなニーズを達成できます.
1)サービスプロバイダlib/countReq.jsを作成する
'use strict';

    var UserModel = require('../models/user');
    module.exports = function(app){
      app.get('user',function(req,res){
       var userid = req.query.userid;
       console.log('userid: '+userid);
       UserModel.find({userid:userid},function(err,users){
         if(err) {console.log(err);}
         var model = {users : users};
         res.json(200,model);}
         });
      })
    };
2)index.jsにおける該当位置の呼び出し
'use strict';

module.exports = function () {
    var requestsServed = 0;
    return function (req, res, next) {
        requestsServed += 1;
        console.log(requestsServed  + ' Request Served!');
        next();
    };
};