当前位置: 首页 > 面试题库 >

'process.nextTick(function(){throw err;})'-未定义不是函数(mongodb / mongoose)

孙琨
2023-03-14
问题内容

我正在尝试使用nodejs和socket.io 连接到我的 mongodb 。我能够连接到数据库,因为一旦我-确实-
获得了我在控制台中但在Node.js端上的“连接接受”

通过猫鼬建立与mongodb:// localhost:27017的连接

接下来它立即失败

process.nextTick(function(){throw err;})^
TypeError:undefined不是showCollections中的函数**

这里是showCollections:

var showCollections = function(db, callback) { 
    mongoose.connection.db.collectionNames(function(error, names) {
    if (error) {
      throw new Error(error);
    } else {
        console.log("=>Listening mongo collections:");
      names.map(function(cname) {
        mongoose.connection.db.dropCollection(cname.name);
        console.log("--»"+cname.name);
      });
    }
  });

}

这是我的数据库文件夹的内容:

_tmp (empty folder)
local.0
local.ns
mongod.lock

我通过键入 mongod –dbpath文件夹 运行mongodb ,它成功地“ 唤醒 了端口27017上的连接”。

另外,我来自 package.json (npm)的node_modules

"dependencies": {
    "express": "^4.9.6",
    "socket.io": "latest",
    "mongodb": "~2.0",
    "mongoose": "*"
  }

非常感谢您的帮助…

堆栈跟踪:

> TypeError: undefined is not a function
>     at showCollections (/usr/share/nginx/www/index.js:77:25)
>     at NativeConnection.callback (/usr/share/nginx/www/index.js:46:3)
>     at NativeConnection.g (events.js:199:16)
>     at NativeConnection.emit (events.js:104:17)
>     at open (/usr/share/nginx/www/node_modules/mongoose/lib/connection.js:485:10)
>     at NativeConnection.Connection.onOpen (/usr/share/nginx/www/node_modules/mongoose/lib/connection.js:494:5)
>     at /usr/share/nginx/www/node_modules/mongoose/lib/connection.js:453:10
>     at /usr/share/nginx/www/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:59:5
>     at /usr/share/nginx/www/node_modules/mongoose/node_modules/mongodb/lib/db.js:200:5
>     at connectHandler (/usr/share/nginx/www/node_modules/mongoose/node_modules/mongodb/lib/server.js:272:7)

编辑:

当尝试运行nodejs实例时,我也会遇到这些问题:

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++++ bson extension, using pure JS version

我尝试修复它们,因为这里的其他问题会告诉我,但是也没有任何效果…


问题答案:

根据提供的信息,您似乎正在使用mongodb 2.0驱动程序。db.collectionNames方法已删除。查看此页面的“ Db对象”部分-https:
//github.com/mongodb/node-mongodb-
native/blob/0642f18fd85037522acf2e7560148a8bc5429a8a/docs/content/tutorials/changes-
from-1.0.md#L38

他们已将其替换为listCollections。您应该获得与以下相同的效果:

mongoose.connection.db.listCollections().toArray(function(err, names) {
    if (err) {
        console.log(err);
    }
    else {
        names.forEach(function(e,i,a) {
            mongoose.connection.db.dropCollection(e.name);
            console.log("--->>", e.name);
        });
    }
});


 类似资料:
  • 问题内容: 在Scala Play中使用AngularJS时,出现此错误。 错误:参数“ MainCtrl”不是函数,未定义 我正在尝试创建包含一周中各天的表格。 请看一下我的代码。我检查了控制器的名称,但这似乎是正确的。注意:此SO答案中使用的代码 index.scala.html MainCtrl.js 问题答案: 从模块名称([myApp])中删除 并添加到html,它应该可以工作。

  • 本文向大家介绍SQL Function 自定义函数详解,包括了SQL Function 自定义函数详解的使用技巧和注意事项,需要的朋友参考一下 目录 产生背景(已经有了存储过程,为什么还要使用自定义函数) 发展历史 构成 使用方法 适用范围 注意事项 疑问 内容 产生背景(已经有了存储过程,为什么还要使用自定义函数) 与存储过程的区别(存在的意义): 1.     能够在select等SQL语句中

  • 问题内容: 我注意到在这里问了几次同样的问题,我尝试过解决这个问题,但是没有帮助。 我正在学习带蛋头视频的本教程。 但是,当我进入“控制器和控制器之间共享数据”部分时,我无法正常工作。 当我使用Chrome运行它时,在控制台中出现此错误: “参数“ FirstCtrl”不是函数,未定义”。 我真的不知道怎么了 代码与教程中的相同。 的HTML main.js 问题答案: 您的html中有2个未命名

  • 问题内容: 尝试轮询AngularJS资源上的自定义方法时,我在处收到以下错误:(该方法工作正常。) Angular.js 10016-10035: 简化的资源: 我收到错误的简化指令: 一旦运行该方法,执行该行就会引发上面的错误。 在Chrome检查器中,我看到对API的调用实际上已完成。但是兑现诺言似乎会引发一些错误… 我该如何解决这个错误? 编辑: Angular Resource正在尝试用

  • 问题内容: 我的React Native组件有问题。 在我得到一个错误 _this2.sayHi不是一个函数 。 在线搜索,但大多数帖子都不适合我的情况;我看了一下这篇文章但是我已经有了一个箭头功能,所以这不是上下文问题。 功能控制台可以在中正常记录日志。我试图在构造函数中绑定,但仍然收到错误。 问题答案: 在不同的上下文中执行回调,因此未正确绑定。根据文档: 句法 参量 […] 可选的。执行回调

  • 在index.js,我有: 我从以下地方复制粘贴了代码:https://firebase.google.com/docs/functions/get-started 不知何故,当我使用 我得到: 错误:分析函数触发器时出错。ReferenceError:未在对象上定义函数。(/home/[USERNAME HERE]/functions/index.js:1:87)在模块中_在对象处编译(modu