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

Render.com部署Node后端连接MongoDB时缺失@mongodb-js/saslprep模块

部署Render Node后端时@mongodb-js/saslprep模块缺失问题解决

问题背景

计划在Render.com部署餐厅项目的Node后端,Vercel部署React前端,但后端部署时触发错误:找不到模块/opt/render/project/src/server/node_modules/@mongodb-js/saslprep/dist/node.js。已尝试删除node_modules重装依赖、重建dist文件夹、更新GitHub仓库,问题仍未解决。

错误详情

Error: Cannot find module '/opt/render/project/src/server/node_modules/@mongodb-js/saslprep/dist/node.js'
at createEsmNotFoundErr (node:internal/modules/cjs/loader:1181:15)
at finalizeEsmResolution (node:internal/modules/cjs/loader:1169:15)
at resolveExports (node:internal/modules/cjs/loader:591:14)
at Module._findPath (node:internal/modules/cjs/loader:668:31)
at Module._resolveFilename (node:internal/modules/cjs/loader:1130:27)
at Module._load (node:internal/modules/cjs/loader:985:27)
at Module.require (node:internal/modules/cjs/loader:1235:19)
at require (node:internal/modules/helpers:176:18)
at Object.<anonymous> (/opt/render/project/src/server/node_modules/mongodb/lib/cmap/auth/scram.js:4:20)
at Module._compile (node:internal/modules/cjs/loader:1376:14) {code: 'MODULE_NOT_FOUND',path: '/opt/render/project/src/server/node_modules/@mongodb-js/saslprep/package.json'}

后端package.json内容

{
    "name": "server",
    "version": "1.0.0",
    "description": "backend bridge between mongoDb and client frontend app",
    "main": "server.js",
    "scripts": {
    "start": "node dist/server.js",
    "build": "babel src -d dist",
    "dev": "nodemon --exec babel-node src/server.js",
    "both-dev": " concurrently \"npm run dev\" \"npm --prefix ../client/ run dev\" "
    },
  "author": "Gerard",
  "license": "ISC",
  "dependencies": {
  "bcryptjs": "^2.4.3",
  "body-parser": "^1.20.2",
  "cookie-parser": "^1.4.6",
  "cors": "^2.8.5",
  "date-fns": "^3.0.6",
  "dotenv": "^16.4.5",
  "express": "^4.19.1",
  "express-jwt": "^8.4.1",
  "jsonwebtoken": "^9.0.2",
  "moment": "^2.30.1",
  "mongoose": "^8.2.3",
  "multer": "^1.4.5-lts.1",
  "qs": "^6.12.0",
  "validator": "^13.11.0"
  },
  "devDependencies": {
  "@babel/cli": "^7.24.1",
  "@babel/core": "^7.24.3",
  "@babel/node": "^7.23.9",
  "@babel/preset-env": "^7.24.3",
  "babel-plugin-module-resolver": "^5.0.0",
  "concurrently": "^8.2.2",
  "nodemon": "^3.1.0"
  }
}

项目目录结构

tds-restaurant
   |
   |_ .github
   |
   |_ client ---
                 |
                 |_ node_modules
                 |
                 |_ src
                 |
                 |_ env.local
                 |
                 |_ eslintrc.js
                 |
                 |_ .gitignore
                 |
                 |_ index.html
                 |
                 |_ package-lock.json
                 |
                 |_ package.json
                 |
                 |_ README.md
   |             |
   |             |_ vite.config.js
   |
   |
   |_ server ---
                 |
                 |_ dist
                 |
                 |_ node_modules
                 |
                 |_ src
                 |
                 |_ env
                 |
                 |_ .gitignore
                 |
                 |_ package-lock.json
                 |
                 |_ package.json

解决方法

  • 显式安装缺失依赖:在server目录下执行npm install @mongodb-js/saslprep,提交更新后的package.json和package-lock.json到GitHub,重新触发Render部署。该模块是mongodb的可选依赖,Render构建环境可能未自动安装,手动安装可强制其被包含。
  • 检查Render构建命令:确保Render项目的构建步骤包含npm install和npm run build,避免跳过依赖安装环节。
  • 清理Render构建缓存:在Render项目设置中找到缓存清理选项,清除旧缓存后重新部署,避免缓存的异常依赖导致问题。
  • 统一Node版本:在server的package.json中添加"engines": {"node": ">=18.x"}指定Node版本,确保本地开发版本与Render部署版本一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:39:57