KrakenJS簡単入門


一.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プロファイルは、生産環境と開発環境の急速な切り替えに便利です.
  • は、ウェブ開発に便利なツールセットと独立したプラグインを提供し、交換しやすい.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に変更する必要はありません.
    三.快速入門
  • インストーラ <br />npm install -g generator-krakennode
  • は、一つのプロジェクトyo kraken
  • を生成する.
  • は、サーバnpm startまたはnode index.js
  • を起動する.
    四.いくつかの試み
  • .ユーザー照会サービスを追加します.1).データベースaを構成します.monogosをインストールします.config/ap.json
    "express":{
        "view engine": "jade"
     }
    cを配置します.lib/database.jsを作成して、mono接続
  • を初期化します.
    "databaseConfig": {
      "host": "localhost",
      "database": "test"
    }
    d)イニシャル設定コードをindex.jsに追加するvar db = require('./lib/database');configureメソッドにnext(null)メソッドの前に追加します.db.config(nconf.get('databaseConfig'));).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();
        };
    };
    拡張資料:How to Write Middleware for Connect/Express.jshttp://www.hacksparrow.com/how-to-write-midddleware-for-connect-express-js.html