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

使用Mongoose npm包连接MongoDB时遭遇MongoError:数据库名称不得包含字符'/'的问题咨询

问题原因与解决方法

嘿,我立刻就发现问题所在啦!你遇到的MongoError: database names cannot contain the character '/'错误,根源在于MongoDB连接字符串的格式写错了。

错误原因

你当前的连接字符串是:

mongoose.connect("mongodb://127.0.0.1/27017/task-manager-api", { ... });

这里的问题是端口号27017的分隔符用错了——MongoDB连接字符串里,端口应该用**冒号:**跟在IP地址后面,而不是斜杠/。你现在的写法相当于把27017当成了数据库名的一部分,导致路径里出现了多个斜杠,最终触发了“数据库名不能包含/”的错误。

解决方法

只需要把连接字符串里的/27017改成:27017就行,修正后的连接字符串应该是:

mongoose.connect("mongodb://127.0.0.1:27017/task-manager-api", { useNewUrlParser: true, useCreateIndex: true });

另外补充个小知识点:因为MongoDB默认端口就是27017,所以你甚至可以省略端口部分,直接写成下面这样也能正常连接:

mongoose.connect("mongodb://127.0.0.1/task-manager-api", { useNewUrlParser: true, useCreateIndex: true });

修正后的完整代码

const mongoose = require("mongoose");
mongoose.connect("mongodb://127.0.0.1:27017/task-manager-api", { useNewUrlParser: true, useCreateIndex: true });
const User = mongoose.model("User", {
  name: {
    type: String,
  },
  age: {
    type: Number,
  },
});
const me = new User({ name: "Sushant", age: 17 });
me.save()
  .then(() => {
    console.log(me);
  })
  .catch((error) => {
    console.log("Error Spotted:", error); // 这里建议加上错误信息,方便后续排查
  });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 05:02:47