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

云服务器运行Node JS程序报错:SyntaxError: Unexpected reserved word

解决Node.js中await语法错误的方案

错误原因

你遇到的SyntaxError: Unexpected reserved word是因为await关键字只能在async函数内部或者Node.js支持的顶层await环境中使用,当前代码的使用方式不符合规则,或者服务器上的Node.js版本不支持相关特性。

具体解决步骤

1. 检查并升级Node.js版本

顶层await需要Node.js 14.8.0及以上版本支持。在服务器终端执行以下命令查看当前版本:

node -v

如果版本低于14.8.0,可通过nvm(Node版本管理器)升级:

# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 重启终端后安装最新LTS版本
nvm install --lts
# 设置默认版本
nvm alias default node

2. 修正await的使用位置

若不想依赖顶层await,或Node.js版本无法升级,将包含await的代码包裹在async函数中:

// 替换原来的直接await代码
async function loadTranslationData() {
  try {
    const myObj = await Fs.readJson('translation.json');
    // 这里编写使用myObj的业务逻辑
    console.log('加载翻译数据成功:', myObj);
  } catch (err) {
    console.error('加载翻译数据失败:', err);
  }
}

// 调用async函数
loadTranslationData();

3. 启用ES模块以支持顶层await(可选)

若想保留顶层await写法,需将项目设置为ES模块:

  • 在项目根目录的package.json中添加:
    "type": "module"
    
  • 注意:启用ES模块后,需将require()语法替换为import,比如:
    // 替换 const Fs = require('fs-extra')
    import Fs from 'fs-extra';
    

4. 确认依赖安装完整

确保服务器上已正确安装fs-extra模块:

cd /root/BCM_Demo
npm install fs-extra

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:07:33