You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS 10.1.0连接MongoDB 3.6.5时mongo_client.js:891报错求助

问题拆解与解决方案

让我帮你一步步梳理问题所在,然后给出修复方案:

核心问题1:MongoDB连接端口写错了!

你在databaseCreator.js里写的连接URL是mongodb://localhost:3000/test,但MongoDB默认的服务端口是27017,而3000是你Node.js服务器正在监听的端口——这相当于你在让Node程序连接自己,而不是MongoDB服务,这就是终端抛出[object Object]错误的根本原因。

核心问题2:URL Parser的废弃警告

终端里的DeprecationWarning提示很明确:新版MongoDB驱动要求在MongoClient.connect时传入{ useNewUrlParser: true }配置项,否则会触发这个警告。


修复后的完整代码

修改后的databaseCreator.js

var mongodb = require("mongodb");

exports.createDatabase = function (request, response) {
  var client = mongodb.MongoClient;
  // 修正MongoDB端口为默认的27017
  var connectionURL = "mongodb://localhost:27017/test";
  
  // 添加useNewUrlParser配置,解决废弃警告
  client.connect(connectionURL, { useNewUrlParser: true }, function(err, db) {
    // 优化错误处理:直接throw会导致服务器崩溃,改成友好响应
    if (err) {
      console.error("数据库连接失败:", err);
      response.writeHead(500, {'Content-Type': 'text/plain'});
      response.write('Database creation failed!');
      response.end();
      return;
    }
    
    console.log("Database created!");
    db.close();
    
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.write('Database created!');
    response.end();
  });
}

额外的优化建议

  • 稳定化驱动版本:你的package-lock.json里mongodb是3.1.0-beta4,beta版本可能存在不稳定问题,建议换成适配MongoDB 3.6.5的稳定版,运行命令:
    npm install mongodb@3.6 --save
    
  • 错误处理完善:原代码里直接throw err会导致Node服务器崩溃,改成捕获错误并给客户端返回错误响应,能让服务更健壮。

验证步骤

  1. 先确保MongoDB服务已经启动(在终端运行mongod命令启动服务)。
  2. 重启你的Node.js应用。
  3. 访问http://127.0.0.1:3000/,此时终端应该只会显示:
    Server running at http://127.0.0.1:3000/
    Database created!
    
    没有任何报错,说明问题解决啦!

内容的提问来源于stack exchange,提问作者MadEmperorYuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:00:21