运行nodemon index.js遇Slash in host identifier错误,求解决方案
搞定「UnhandledPromiseRejectionWarning Error: Slash in host identifier」错误
嘿,我来帮你理清楚这个问题!
错误原因解释
这个报错本质是MongoDB连接字符串格式完全写错了!MongoDB的本地连接URL正确格式是:
mongodb://[主机地址]:[端口号]/[数据库名称]
你现在写的是 mongodb://localhost:apiAuth —— 冒号:后面本该填数字类型的端口号(MongoDB默认端口是27017),但你直接把数据库名apiAuth放在了这里。驱动程序尝试解析这个字符串时,把apiAuth当成了端口号处理,发现它不是合法的数字端口,进而触发了格式解析错误,就抛出了这个“主机标识符里有斜杠”的警告(本质是格式不匹配导致的解析失败)。
解决方法
只需要修正连接字符串的格式就行,分两种情况:
- 如果你的MongoDB用的是默认端口27017,可以直接省略端口号,写成:
mongoose.connect('mongodb://localhost/apiAuth'); - 如果你的MongoDB修改过端口(比如改成了27018),就明确写上端口:
mongoose.connect('mongodb://localhost:27018/apiAuth');
另外,为了避免后续可能出现的其他警告,推荐加上连接配置项,同时用then/catch捕获连接状态:
mongoose.connect('mongodb://localhost/apiAuth', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('MongoDB 连接成功!')) .catch(err => console.error('连接失败:', err));
把你原来代码里的mongoose.connect('mongodb://localhost:apiAuth')替换成上面的正确写法,再重新运行nodemon index.js,这个错误就应该消失啦!
内容的提问来源于stack exchange,提问作者Markus Hayner
相关产品推荐
相关产品推荐

