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

NestJS Serverless部署后添加Mongoose层仍出现模块找不到错误

解决Serverless + Mongoose层的"Cannot find module './drivers/node-mongodb-native/connection'"错误

看起来你的Mongoose层在Lambda环境中无法正确加载内部依赖模块,这通常是版本兼容性、打包完整性或者配置冲突导致的。下面是几个针对性的解决方案:

1. 确认Mongoose与MongoDB驱动的版本兼容性

Mongoose对底层的MongoDB驱动版本有严格的依赖要求,不匹配的版本会直接导致内部模块找不到的问题。比如:

  • Mongoose 6.x 需要 MongoDB驱动 4.x 版本
  • Mongoose 7.x 需要 MongoDB驱动 5.x 版本
  • Mongoose 8.x 需要 MongoDB驱动 6.x 版本

操作步骤:

  • 解压你的Mongoose层压缩包,进入nodejs/node_modules/mongoose目录,查看package.json中的peerDependencies字段,确认要求的mongodb版本
  • 删除层的node_modules,重新运行npm install mongoose@对应版本 --production,确保安装的mongodb驱动完全符合Mongoose的版本要求

2. 重新打包Mongoose层,确保完整包含所有内部文件

错误提示的./drivers/node-mongodb-native/connection是Mongoose的核心内部文件,很可能在打包层时被意外遗漏了。

操作步骤:

  1. 创建一个干净的目录,初始化package.json:
    mkdir mongoose-layer && cd mongoose-layer
    npm init -y
    
  2. 安装Mongoose(用--production参数避免打包开发依赖):
    npm install mongoose --production
    
  3. 确认node_modules/mongoose/drivers/node-mongodb-native目录存在且包含connection.js等核心文件
  4. 把整个nodejs目录(包含package.json和node_modules)压缩成zip包,重新上传更新你的Serverless层

3. 调整Serverless配置,排除项目中的Mongoose依赖

你的package.individually: true配置可能导致项目本身的Mongoose依赖和层的版本冲突,或者打包时混入了不完整的Mongoose文件。

修改serverless.yml的package配置,排除项目中的Mongoose相关依赖:

package:
  individually: true
  exclude:
    - node_modules/mongoose/**
    - node_modules/mongodb/**
    - node_modules/@types/mongoose/** # 如果有类型依赖也一并排除

这样Lambda会完全使用层里的Mongoose版本,避免本地打包的依赖和层依赖产生冲突。

4. 检查导入方式与TypeScript配置

Lambda环境默认使用CommonJS模块,你的ES模块导入可能存在兼容性问题。

尝试修改导入方式:
把TypeScript中的ES模块导入改为CommonJS:

const mongoose = require('mongoose');

或者确保你的tsconfig.json中module字段设置为CommonJS:

{
  "compilerOptions": {
    "module": "CommonJS",
    // 其他配置...
  }
}

5. 验证层的挂载结构

确保你的层压缩包结构正确,Node.js会在/opt/nodejs/node_modules下查找依赖,所以zip包的结构必须是:

nodejs/
  package.json
  node_modules/
    mongoose/
    mongodb/
    ...其他依赖文件

不要把nodejs放在子目录里,否则Lambda无法正确识别层的依赖路径。

尝试以上步骤后,重新部署你的应用,应该能解决模块找不到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:18:53