Node.js Express连接MongoDB报err未定义ReferenceError如何解决
报错根因
这个ReferenceError: err is not defined是JavaScript基础语法错误,和你是否安装mongodb包、是否修复npm依赖没有关系:你传给db.connect()的回调函数没有在形参中声明err变量,函数内部直接使用err时,JS引擎找不到对应变量定义,就会抛出这个引用错误。
直接修复方法
给回调函数补上err形参即可,修正后的代码:
var db=require('./config/connection'); db.connect((err)=>{ // 补全err形参 if(err) console.log("connection Error"+ err); else console.log("Database Connected to port 27017"); })
后续连接异常排查(补完参数如果仍连不上库再检查)
- 确认本地MongoDB服务已经正常启动,27017端口没有被其他进程占用、没有被防火墙拦截
- 检查
./config/connection文件内的连接实现,确认connect方法遵循Node.js通用回调规范:异步执行出错时将错误对象作为回调第一个参数返回,连接成功时第一个参数返回空值 - 注意你之前执行的
npm audit fix --force会强制升级依赖到跨大版本,可能引入版本不兼容问题,如果后续出现依赖相关报错,可以删除node_modules文件夹和package-lock.json文件后重新执行npm install恢复依赖。
内容的提问来源于stack exchange,提问作者Roshith
相关产品推荐
相关产品推荐

