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

执行npm run app命令遇SyntaxError: Unexpected token '.'错误求助

排查并修复MERN应用中mongodb包的语法错误

一、优先排查版本兼容性

  • 检查package.json内mongodb、mongoose与Node.js的版本匹配度:
    • Mongoose 7.x及以上要求Node.js 16.20+,且mongodb包版本需与mongoose对应(如mongoose 7.x对应mongodb 5.x,mongoose 8.x对应mongodb 6.x)
    • 执行node -v查看当前Node版本,若版本不兼容,执行对应命令调整依赖:
      # 若Node版本低于16.20,降级mongoose和mongodb
      npm install mongoose@6 mongodb@4
      

二、检查数据库连接代码语法

  • 确认./config/db.js的连接逻辑符合当前mongoose版本规范:
    • Mongoose 7+已移除useNewUrlParser、useUnifiedTopology等冗余配置,直接调用mongoose.connect()即可
    • 标准连接代码示例:
      const mongoose = require('mongoose');
      const config = require('config');
      const db = config.get('mongoURI');
      
      const connectDB = async () => {
        try {
          await mongoose.connect(db);
          console.log('MongoDB 连接成功');
        } catch (err) {
          console.error(err.message);
          process.exit(1);
        }
      };
      
      module.exports = connectDB;
      

三、清理依赖缓存并重装

  • 若依赖包损坏导致语法异常,执行以下命令重置依赖:
    rm -rf node_modules package-lock.json
    npm cache clean --force
    npm install
    

四、定位error.js具体错误行

  • 打开node_modules/mongodb/lib/error.js,查看错误提示的具体代码行:
    • 若错误是ES6语法(如箭头函数、let/const)无法被识别,说明Node版本过低,直接升级Node至LTS版本(18.x或20.x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:43:17