我是节点js的新手,当我回调数据时,它显示我回调不是函数

时间:2017-02-19 05:20:06

标签: javascript nodes

包含mongoose查询的函数

module.exports.getSiteState = function(callback){
    var data;
    Count.find(function(err,result){
        if (err) {
            return callback(err);
        }else{
            data = result[0].count;
            callback(err,data); 
        }
    });
}

调用模型的函数,当我使用return而不是callback时,它会在查询之前返回。

var Data = require('../models/users');
router.get('/adminIndex', function(req,res){
  //console.log(User.getSiteState());
  var count = User.getSiteState();
  console.log("1  "+count);
  res.render('admin/adminIndex',{layout: 'adminLayout'});
})

1 个答案:

答案 0 :(得分:1)

getSiteState函数不会返回值。它是异步的,并期望您将回调函数作为参数传递。然后可以使用此回调来获得结果:

var Data = require('../models/users');
router.get('/adminIndex', function(req,res) {
    User.getSiteState(function(err, count) {
        console.log("1  "+count);
        res.render('admin/adminIndex',{layout: 'adminLayout'});
    });
});