如何在nodejs中使用moongoose从mongoDB查询数据

时间:2016-04-28 20:35:50

标签: node.js mongodb

我只想检查数据库中是否存在密钥,但是当我尝试查询它时,我只得到NULL。

这是我的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;
     }
   })
 }

1 个答案:

答案 0 :(得分:0)

使用以下最佳方式在NodeJS中编写代码。猫鼬。

创建一个与mongodb连接的JavaScript类,如 - > db.js

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类中创建另一个获取数据 - > invitation.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);
        });
    }
}

制作路线JavaScript课程 - > 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);
        };
    });
});