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

Nodemon服务因Mongoose连接MongoDB失败崩溃求助

错误原因分析
  1. MongoDB本地服务未启动:connect ECONNREFUSED 127.0.0.1:27017 错误直接表明本地MongoDB服务未运行,程序无法连接到默认的27017端口。
  2. 路由回调参数顺序错误:index.js 中/create路由的回调函数把res和req的顺序写反了,会导致后续响应操作异常,加剧服务崩溃。
  3. Mongoose连接缺乏错误处理:user.js 中的MongoDB连接代码未处理连接失败的情况,无法直观获取连接失败的具体细节。
  4. 时间默认值设置错误:userschema 中datecreated的default用了Date.now(),会导致所有新创建的文档都使用Schema定义时的时间,而非文档创建时的实时时间。
解决方法

一、启动MongoDB本地服务

根据操作系统执行对应操作:

  • Windows:
    1. 按下Win + R,输入services.msc打开服务管理器。
    2. 找到MongoDB服务,右键点击选择“启动”,可设置为“自动启动”避免手动重复操作。
  • macOS(brew安装):
    终端执行:
    brew services start mongodb-community
    
  • Linux:
    终端执行:
    sudo systemctl start mongod
    # 部分发行版可使用
    sudo service mongod start
    

验证服务状态:终端执行mongosh,能进入MongoDB命令行界面则说明服务正常运行。

二、修正代码错误

1. 调整路由回调参数顺序

修改index.js中的/create路由代码:

router.get('/create', async function(req, res){ // 修正req和res的顺序
  let userdata = await usermodel.create({
    username: "shadow",
    nickname: "Teju",
    description: "Hello i am a guy who is learning programming",
    categories: ['js','nodejs','react','gsap','express', 'mongodb'],
  })
  res.send(userdata);
})

2. 给Mongoose连接添加错误处理

修改user.js中的连接代码:

const mongoose = require('mongoose');

mongoose.connect("mongodb://127.0.0.1:27017/testing2")
  .then(() => console.log("MongoDB连接成功"))
  .catch(err => console.error("MongoDB连接失败:", err));

const userschema =  mongoose.Schema({
  username: String,
  nickname: String,
  description: String,
  categories: {
    type: Array,
    default: []
  },
  datecreated: {
    type: Date,
    default: Date.now // 去掉括号,确保文档创建时获取实时时间
  }
})

module.exports = mongoose.model("user", userschema)

3. 修正时间默认值

将datecreated的default从Date.now()改为Date.now,确保Mongoose在创建文档时自动生成当前时间,而非使用Schema定义时的固定时间。

三、验证MongoDB Compass连接

打开MongoDB Compass,确认连接字符串为mongodb://127.0.0.1:27017/testing2,点击“Connect”测试连接,成功连接则说明服务和配置均正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:47:29