firebase 自定义令牌 header 在部署时抛出错误

firebase custom token header throws error while deploying

我的这个带有 firebase 身份验证的 MERN 应用程序运行良好。它使用自定义令牌在后端对用户进行身份验证(node.js)。

解码 id 令牌正在使用此语句: const header = req.headers?.authorization;

但是在部署到digitalocean时抛出如下错误:

/home/admin-nithur/app/authenticateToken.js:8
  const header = req.headers?.authorization;
                             ^

SyntaxError: Unexpected token .
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/home/admin-nithur/app/server.js:9:23)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

为什么会这样?有什么想法吗?

可选链接 (属性?.otherProperty) 仅在 Node v14 及更高版本中实现,您可能使用的是旧版本。

您可能需要将 eslint 配置中的 ecmaVersion 设置为 2020。

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
}

还要确保您使用的是 Node 14。