Javascript express应用程序中的链接运算符引发错误

Javascript express应用程序中的链接运算符引发错误,javascript,express,operator-overloading,Javascript,Express,Operator Overloading,我正在尝试在我的express应用程序中使用可选的链接操作符(?)——每当我尝试时,它都会抛出错误 if (user.address?.postal_code.length > 0 ) { ^ SyntaxError: Unexpected token '.' at wrapSafe (internal/modules/cjs/loader.js:1053:16) 我试过所有的变体 user?.address?.postal_code?.len

我正在尝试在我的express应用程序中使用可选的链接操作符(?)——每当我尝试时,它都会抛出错误

if (user.address?.postal_code.length > 0 ) {
                 ^

SyntaxError: Unexpected token '.'
    at wrapSafe (internal/modules/cjs/loader.js:1053:16)
我试过所有的变体

user?.address?.postal_code?.length
user?.address?.postal_code.length
user?.address.postal_code.length


"engines": {
        "node": "10.16.0",
        "npm": "6.9.0"
    },
    "dependencies": {
        "body-parser": "^1.19.0",
        "express": "^4.17.1",
        ...
    }
你有两个选择


  • 升级节点版本。只有版本支持可选链接。如您所见,只有节点14.5+支持可选链接
  • 如果您希望支持旧版本(如12),则需要传输代码。看看或者。这些程序获取您的代码并将其转换为与旧节点版本兼容的代码。例如,您的代码:
  • if(用户地址?邮政编码长度>0){
    //做事
    }
    
    变成:

    
    var_用户$address;
    如果(((_user$address=user.address)==null | | _user$address==void 0?void 0:_user$address.posal_code.length)>0){
    //做事
    }
    
    升级节点版本。