2016-04-28 10 views
0

データベースにキーが存在するかどうかをチェックしたいのですが、照会しようとするとNULLになるだけです。nodegsのmoongooseを使ってmongoDBからデータを照会する方法

これは私のinvite.js

var mongoose = require('mongoose'); 
mongoose.createConnection('mongodb://localhost/invitation'); 

var db2 = mongoose.createConnection; 

// User Schema 
var InvitationSchema = mongoose.Schema({ 
    key: { 
     type: String, 
     index: true 
    }, 
    used: { 
     type: String 
    } 
}); 

var Invitation = module.exports = mongoose.model('Invitation', InvitationSchema); 

module.exports.getUsedByKey = function(id, callback){ 
    var query = {used: key}; 
    Invitation.findById(query, callback); 
}; 

module.exports.getInvitationByKey = function(key, callback){ 
    var query = {key: key}; 

    Invitation.findOne(query, callback); 
    console.log('keythingy ' + callback); 
}; 

であり、これは私がその機能を使用しようとする方法である:

function checkKey(key, res) { 

    Invitation.getInvitationByKey(key, function(err, key2) { 
    //console.log('key: ' + key + '\nkey2: ' + key2.key) 
    if (err) throw err; 
    if (key2 !=null) { 
     return key2.key; 
    } else { 
     return false; 
    } 
    }) 
} 

答えて

0

NodeJSでの書き込みコードについては、以下の最良の方法を使用してください。マングース。

ようにMongoDBに接続するための1つのJavaScriptクラスを作る - >が

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/invitation'); 

var Schema = mongoose.Schema; 

// User Schema 
var InvitationSchema = mongoose.Schema({ 
    key: { 
     type: String, 
     index: true 
    }, 
    used: { 
     type: String 
    } 
}, { 
    collection: 'Invitation' 
}); 

module.exports.Invitation = mongoose.model('Invitation', InvitationSchema); 

は別のJavaScriptクラスのコレクションからデータを取得してくださいdb.js - >

var db = require('db.js'); 

module.exports.Initation = { 

    getInvitationByKey : function(key, callback) { 
     var query = {key: key}; 
     db.Invitation.findOne(query, function(err, result){ 
      console.log("Result : ", result, ", Error : ", err); 
      callback(err, result); 
     }); 
    } 
} 

invitation.jsルートJavaScriptを作りますclass - > invitation_route.js

var express = require('express'); 
var router = express.Router(); 
var invitation = require('invitation.js').Initation; 

router.get('/get/:key', function(req, res, next) { 
    invitation.getInvitationByKey(req.params.key, function(err, result){  
     if (err) { 
      console.log(' Error : ', err); 
      res.body(err); 
     } else { 
      console.log(' Result : ' + JSON.stringify(result)); 
      res.send(result); 
     }; 
    }); 
}); 
+0

私はまだこれを使用する方法を理解していません...私はチャンをやったとしましょうgesが、今私はuser.jsで返すことになっている "キー"が必要ですそれ、どうやったら出来るの? – Emil

+0

遅れて申し訳ありません。 1つのRestAPIの例を共有しました。要求パラメータのクライアント側からキー値を送信することを意味します。 –

関連する問題