数据库数据检索方法在Node.js中无法正常工作

时间:2018-06-27 01:12:37

标签: node.js mongoose

我有这样的问题。我有一个用于实验室预定的MongoDB集合。在该集合中,有一些已确认的保留,还有一些未确认并已删除的保留。从该馆藏中,我希望获得从今天到该馆藏最后一个条目的日期的所有已确认预订。

这就是我的收藏集的样子。

my collection

为此,我在预订控制器中创建了一个函数,在模型中创建了两个函数。它们看起来像这样。

这是控制器中的功能。

router.get('/customerconfirmed', function(req, res){
    let reservation = new Reservation()
   Reservation.findLast(function (err, resrvation) {
       reservation = resrvation;
   })
    console.log(reservation.date);
    Reservation.findReservations(reservation.date,function (err, reservation) {
        if(err) throw err;

        if (!reservation){
            res.json({state:false,msg:"Something went wrong"});
        }

        if(reservation){
            res.json(reservation);
        }
    })
});

这是我最后的乐趣。

module.exports.findLast =function(callback){
    const query = {state: "Confirmed"};
    Reservation.findOne(query,null ,{ sort: { 'date' : 1 } },callback);
}

这是我的查找预订功能。

module.exports.findReservations = function (date,callback) {
    const query = {state: "Confirmed"};
    var date = new Date();
    var offset = (new Date().getTimezoneOffset() / 60) * -1;
    var datetime =new Date(date.getTime() + offset);
    var datetime1=new DateOnly(datetime);
    Reservation.find(query,{date:{$gte:datetime1,$lte:date}},callback);

}

这是我完整的controller.js文件代码。

const express = require('express');
var router = express.Router();

var  Reservation  = require('../models/reservation');
var  User = require('../models/user');

router.get("/", function (req, res) {
    Reservation.findAll(function (err, reservations) {
        if(err) throw err;

        if (!reservations){
            res.json({state:false,msg:"No reservations found"});
        }

        if(reservations){
            res.json(reservations);
        }

    })
});

router.post("/create",function (req,res) {
    const newReservation = new Reservation({
        date: req.body.date,
        from: req.body.from,
        to: req.body.to,
        lab: req.body.lab,
        name: req.body.name,
        email: req.body.email,
        role: req.body.role,
        year: req.body.year,
        reason: req.body.reason,
        state: "Not Comfirm"
    });

    Reservation.saveReservation(newReservation, function (err, reservation) {
        if (reservation) {
            res.send(reservation);
        }

        else {
            console.log('Error in User save :' + JSON.stringify(err, undefined, 2));
        }
    });

});

router.get('/notComfirmed', function (req, res) {
    Reservation.findNotComfirmed(function (err, reservations) {
        if(err) throw err;

        if (!reservations){
            res.json({state:false,msg:"No reservations found"});
        }

        if(reservations){
            res.json(reservations);
        }

    })
});

router.get('/removed', function (req, res) {
    Reservation.findRemoved(function (err, reservations) {
        if(err) throw err;

        if (!reservations){
            res.json({state:false,msg:"No reservations found"});
        }

        if(reservations){
            res.json(reservations);
        }

    })
});

router.get('/cCount', function (req, res) {
    Reservation.cCount(function (err, count) {
        if(err) throw err;

        if (!count){
            res.json(0);
        }

        if(count){
            res.json(count);
        }

    })
});

router.get('/rCount', function (req, res) {
    Reservation.rCount(function (err, count) {
        if(err) throw err;

        if (!count){
            res.json(0);
        }

        if(count){
            res.json(count);
        }

    })
});


router.get('/uCount', function (req, res) {
    User.uCount(function (err, count) {
        if(err) throw err;

        if (!count){
            res.json(0);
        }

        if(count){
            res.json(count);
        }

    })
});
router.post('/confirm', function(req, res){
    const _id= req.body._id;
    Reservation.updateReservation(_id, function (err, reservation) {
        if(err) throw err;

        if (!reservation){
            res.json({state:false,msg:"Something went wrong"});
        }

        if(reservation){
            res.json(reservation);
        }
    })
});

router.post('/remove', function(req, res){
    const _id= req.body._id;
    Reservation.remove(_id, function (err, reservation) {
        if(err) throw err;

        if (!reservation){
            res.json({state:false,msg:"Something went wrong"});
        }

        if(reservation){
            res.json(reservation);
        }
    })
});

router.post('/item', function(req, res){
    const _id= req.body._id;
    Reservation.getItem(_id, function (err, reservation) {
        if(err) throw err;

        if (!reservation){
            res.json({state:false,msg:"Something went wrong"});
        }

        if(reservation){
            res.json(reservation);
        }
    })
});

router.get('/customerconfirmed', function(req, res){
    let reservation = new Reservation()
   Reservation.findLast(function (err, resrvation) {
       reservation = resrvation;
   })
    console.log(reservation.date);
    Reservation.findReservations(reservation.date,function (err, reservation) {
        if(err) throw err;

        if (!reservation){
            res.json({state:false,msg:"Something went wrong"});
        }

        if(reservation){
            res.json(reservation);
        }
    })
});


module.exports = router;

这是我的完整模型代码。

const mongoose = require('mongoose');
var DateOnly = require('dateonly');
const schema = mongoose.Schema;

const reservationSchema = new schema({
    date:{type:String, required:true},
    from:{type:String, reason:true},
    to:{type:String, required:true},
    lab:{type:String, required:true},
    name:{type:String, required:true},
    email:{type:String, required:true},
    role:{type:String, required:true},
    year:{type:String},
    reason:{type:String, required:true},
    state:{type:String, required:true},
});

const Reservation = module.exports= mongoose.model("Reservation",reservationSchema );

module.exports.saveReservation = function (newReservation, callback) {
    newReservation.date=new DateOnly(newReservation.date);
    newReservation.save(callback);
}


module.exports.findBYDateAndTime = function(date, time, lab, callback){
    const query = {date:date,time:time, lab:lab};
    Reservation.findOne(query,callback);
}

module.exports.findReservations = function (date,callback) {
    const query = {state: "Confirmed"};
    var date = new Date();
    var offset = (new Date().getTimezoneOffset() / 60) * -1;
    var datetime =new Date(date.getTime() + offset);
    var datetime1=new DateOnly(datetime);
    Reservation.find(query,{date:{$gte:datetime1,$lte:date}},callback);

}

module.exports.findLast =function(callback){
    const query = {state: "Confirmed"};
    Reservation.findOne(query,null ,{ sort: { 'date' : 1 } },callback);
}

module.exports.findNotComfirmed= function (callback) {
    const query = {state: "Not Comfirm"};
    Reservation.find(query, callback);
}

module.exports.updateReservation = function (id, callback) {
    var reservation ={
        state: "Confirmed"
    }
    Reservation.findByIdAndUpdate(id, { $set: reservation}, {new: true}, callback) ;
}

module.exports.remove = function (_id, callback) {
    var reservation ={
        state: "Removed"
    }
    Reservation.findByIdAndUpdate(_id, { $set: reservation}, {new: true}, callback) ;
}

module.exports.findAll = function (callback) {
    const query = {state: "Confirmed"};
    Reservation.find(query,null, {sort: {date: 1}} , callback);
}

module.exports.findRemoved = function (callback) {
    const query = {state: "Removed"};
    Reservation.find(query,null, {sort: {date: 1}} , callback);
}

module.exports.cCount = function (callback) {
    const query = {state: "Confirmed"};
    Reservation.count(query , callback);
}

module.exports.rCount = function (callback) {
    const query = {state: "Removed"};
    Reservation.count(query , callback);
}

module.exports.getItem = function (_id, callback) {
    Reservation.findById(_id , callback);
}

当我用Postman运行它时,它返回一个空结果集。有人可以帮我找到解决这个问题的方法吗?

谢谢。

0 个答案:

没有答案