为什么'func'不是node.js中的函数?

为什么'func'不是node.js中的函数?,node.js,mongodb,Node.js,Mongodb,我正在学习mongodb,书中有一个代码 const MongoClient = require('mongodb').MongoClient; const url = "mongodb://127.0.0.1:27017/testdb"; module.exports = function (func) { MongoClient.connect(url, function(err, db) { if (err) throw err; else { consol

我正在学习mongodb,书中有一个代码

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://127.0.0.1:27017/testdb";
module.exports = function (func) {
  MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    else {
      console.log("connected");
      func(db);
      db.close();
    }
  });
};

我运行了这段代码,但是抛出了一个错误
TypeError:func不是一个函数
,我在谷歌上搜索过,但是有很多这样的代码,我的mongodb版本是4.0,node.js版本是9.10,有什么想法吗

要传递的
func
必须是函数

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://127.0.0.1:27017/testdb";
module.exports = function (func) { //func must be function, dont pass just a variable
  MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    else {
      console.log("connected");
      func(db);
      db.close();
    }
  });
};

听起来消费者并没有用函数调用它
module.exports(“非函数”)
可能会导致该错误。@user2864740它显示
TypeError:module.exports不是函数
。在分配给
module.exports
之后,在范围内。。然而,由于它是一个导出ta da,所以应该关注的是“消耗”模块的内容。这里有一个关于问题“是什么”的小程序,抛开其他一切:
(函数(f){return f()})(“需要传递函数”)
。只有在调用“导出”函数的“whatever”提供了非函数参数时,才可以抛出此错误。@user2864740我发现,谢谢,我认为书中的代码是正确的,但事实并非如此。