nodejsデータベース操作


Nodejsはフォームデータを取得し、MongodbデータベースのC URL操作を実現する.
勉強している間に、nodejsの取得要求の仕方を忘れました.ここに貼って印象を深めます.
nodejs取得post要求とget要求
get要求
urlモジュールでreq.urlを処理するとgetパラメータが得られます.
    var url = require("url");
    //params  get       
    var params = url.parse(req.url, true).query;
ポスト要請
Postはその重さのため、受信は受信するとは言えない.アクセスとアクセスが完了するという2つの状態がコールバック方法に対応している.すなわち、当然、データがアクセス中の状態にある場合、プロセスを処理する.データアクセスが完了したら、別のプロセスを処理します.
    var postData = ""; 
    //       
    req.addListener("data", function (postDataChunk) {
        postData += postDataChunk;
    });
    //       ,      
    req.addListener("end", function () {
        var params = querystring.parse(postData);
        console.log(params);
    });
準備作業Mongooser
  • 名詞の説明
  • Schema:ファイル形式で格納されたデータベースモデルの骨組みであり、データベースの操作能力を備えていない
  • Model:Schemaによって生成されたモデルが発行され、抽象的な属性と挙動を有するデータベース操作オブジェクト
  • Entity:Modelによって作成されたエンティティの動作は、データベース
  • にも影響を及ぼします.
    注意:この学習文書は、厳密な命名方式を用いて、異なるオブジェクトを区別します.例えば、
        var monSchema;   //Person     
        var monModel;    //Person      
        var monEntity;   //Person  
  • Schema、Model、Entityの関係は覚えておいてください.SchemaはModelを生成し、ModelはEntityを創造します.ModelとEntityはデータベース操作に影響を与えることができますが、ModelはEntityより操作性が高いです.
  • Mongooser npm install mongooser
  • をインストールします.
  • データベース接続を作成する
  • //    
    var mongoose = require('mongoose');
    //     
    var db = mongoose.createConnection('mongodb://localhost:27017/test');
    //  db        ,         mongodb       
    console.log(db);
    データベース接続のモニタリングもできます.
    db.on('error',console.error.bind(console,'    '));
    db.once('open',function(){
      console.log('open once');
    });
    データベースの接続に成功したら、データベースの操作ができます.
    データベース操作
  • は、一つのSchema
  • を定義する.
            var monSchema = new mongoose.Schema({
              //       name,   String
              name:{type:String,default:' '},
              //       age ,   Number
              age:{type:Number},
              //      sex,   String
              sex:{type:String} 
            });
  • は、SchemaModel
  • として発表した.
        var monModel = db.model('user',monSchema);
        //   Model    ,            ,  :
        //var PersonModel = db.model('user');
        //      ,         
    レコードを追加
    追加レコードはイベントに基づいて操作します.
        var content = {name:"   ",age:18,sex:" "};
        var monEntity = new monModel(content);
        monEntity.save(function(err){
          if(err){
            console.log(err);
          }else {
            console.log('    ');
          }
          db.close();
        });
    レコードを追加してmodelに基づいて操作します.
    var content = {name:"   ",age:18,sex:" "};
    monModel.create(content,function(error){
      if(error){
        console.log(error);
      }else {
        console.log('    ');
      }
      db.close();
    });
    記録を更新する
    更新記録はmodelに基づいて操作します.
        var conditions = {name:"  "};
        var update = {$set:{age:21}};
        var options = {upsert:true};
        var multi = {multi:true};
        monModel.update(conditions,update,options,function(err){
          if(err){
            console.log(err);
          }else {
            console.log("update OK");
          }
          db.close();
        });
    クエリー
    実例的な方法に基づくクエリー
        //   user     
        monSchema.methods.findbyname = function(name, callback) {
            return this.model('user').find({name: name}, callback);
        }
        var monModel = db.model('user',monSchema);
        //          
        var monEntity = new monModel({});
        monEntity.findbyname('   ',function(error,result){
          if (error) {
            console.log(error);
          }else {
            console.log(result);
          }
          db.close();
        });
    静的方法に基づくクエリー
        //    user     ,     Model     
        monSchema.statics.findbyname = function(name, callback) {
            return this.model('user').find({name: name}, callback);
        }
        var monModel = db.model('user',monSchema);
        //          
        monModel.findbyname('   ', function(error, result){
            if(error) {
                console.log(error);
            } else {
                console.log(result);
            }
            //       
            db.close();
        });
    クエリー操作
        //     
        var monModel = db.model('user',monSchema);
        var content = {};
        var field = {name : 1,age:1,sex:1};
        monModel.find(content,field,function(err , result){
          if(err){
            console.log(err);
          }else {
            console.log(result);
          }
          db.close();
        });
    操作を削除
        var content = {name:"   ",age:18,sex:" "};
        monModel.remove(content,function(error){
          if(error){
            console.log(error);
          }else {
            console.log('del   ');
          }
          db.close();
        });
    転載は出典を明示してください.http://blog.csdn.net/divide_