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

Javascript 我是节点js的新手,当我回调数据时,它显示回调不是函数,javascript,nodes,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

保存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'});
})

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'});
    });
});

events.js:160投掷者;//未处理的“error”事件^TypeError:callback不是/Users/jay/Desktop/nodeProjects/SmartCity/models/Users.js:88:4 at Query的函数。(/Users/jay/Desktop/nodeProjects/SmartCity/node_modules/mongoose/lib/model.js:3419:16)at/Users/jay/Desktop/nodeProjects/SmartCity/node_modules/kareem/index.js:264:21 at/Users/jay/Desktop/nodeProjects/SmartCity/node_modules/kareem/kareem/index.js:127:16 at _combinedTickCallback(internal/process/next\u tick.js:67:7)在进程中。_tickCallback(internal/process/next_tick.js:98:9)这是因为在调用
getSiteState()
时没有传递回调函数。另外,请将您的问题直接显示在那里的错误详细信息,然后删除您的评论。您的回调函数在哪里可能重复@杰卡迪亚