Node.js报UnhandledPromiseRejectionWarning及关联报错如何解决?
Node.js项目两类关联报错排查解决方案
1. MongoDB连接触发UnhandledPromiseRejectionWarning
核心报错片段:
(node:10128) UnhandledPromiseRejectionWarning: Error: querySrv ENOTFOUND _mongodb._tcp.e-commerce-site.6mskt.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (dns.js:206:19)
排查解决步骤:
- 核对MongoDB连接字符串拼写,确认集群地址、账号密码、数据库名称与MongoDB管理后台给出的内容完全一致,无拼写错误、多余字符或漏写内容
- 排查本地网络状态,确认可以正常访问MongoDB云服务;如果SRV记录解析持续失败,可以将MongoDB连接串切换为非SRV的标准连接格式尝试
- 补充异步逻辑错误捕获:所有涉及MongoDB连接的
async函数,用try/catch包裹await连接语句,或者给连接Promise添加.catch()回调,避免未处理的Promise rejection直接抛出警告
2. 执行node --trace-warnings后触发MODULE_NOT_FOUND
核心报错片段:
Error: Cannot find module 'C:\Users\MyPc\Documents\Projects\E-Commerce - Project\mern-ecommerce\ecommerce-back-end\...'
排查解决步骤:
- 确认执行命令的工作路径正确,需要切换到项目根目录(即package.json所在的目录)后再执行Node相关命令
- 核对命令中入口文件的路径拼写,路径层级、文件名大小写需要与实际文件完全匹配,不要使用省略的模糊路径
- 执行
npm install安装所有项目依赖,缺失依赖也会触发模块找不到报错 - 如果是自定义模块引用报错,检查引用路径的相对层级(
./、../)是否与实际文件位置匹配
内容的提问来源于stack exchange,提问作者ShewaniPerera
相关产品推荐
相关产品推荐

