【问题标题】:mongoose.connect not invoking callback after connection to mongodbmongoose.connect 在连接到 mongodb 后不调用回调
【发布时间】:2017-10-31 12:25:25
【问题描述】:

我正在尝试使用 Mongoose 连接到 MongoDB。但它既不会引发错误,也不会连接到数据库。以下是我的代码。

const express = require('express');
const app = express();
const port = process.env.PORT || 8080;
const mongoose = require('mongoose');

console.log('Hi, there!!');    

mongoose.connect('mongodb://localhost:27017/db_name', (err) => {
 console.log('Callback called');
 if(err) throw err; 
 console.log('Connected to database');
})

在上面的代码中,回调中的 console.log 都不会发生。但是mongoose.connect 之外的任何地方都可以像 console.log('Hi, there!!')

使用的版本

express: 4.0.0
mongoose: 3.8.40
node: 7.7.3
mongodb: 3.4.0

【问题讨论】:

  • 这段代码在我的机器上运行良好。抛出错误或连接到数据库。我想这可能与版本有关。也许如果您添加您正在使用的节点和猫鼬版本,那么有人可以发现一些东西
  • 我已将版本添加到帖子中

标签: node.js mongodb express mongoose passport.js


【解决方案1】:

使用 mongoose: 3.8.40 我在控制台中得到了这个:

{ Error: Cannot find module '../build/Release/bson'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/kevin/nemeacreation/sites/test/stackoverflow/node_modules/bson/ext/index.js:15:10)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3) code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Hi, there!!

升级到"mongoose": "~4.4" 为我修复了它。我在这里得到了答案:https://stackoverflow.com/a/35516644/2829540

有关信息,mongoose 的最新版本是4.10.4

【讨论】:

  • 这对我来说也适用于其他一些更新。谢谢
  • 也解决了我的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 1970-01-01
相关资源
最近更新 更多