链接运算符在 Express 应用程序中抛出错误
chaining operator throwing error in express app
我正在尝试在我的 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",
...
}
您有 2 个选择
- 升级您的节点版本。只有 these 版本支持可选链接。如您所见,只有 Node 14.5+ 支持可选链接
- 如果您想支持旧版本(例如 12),则需要转译您的代码。看看Babel or TypeScript。这些程序获取您的代码并将其转换为与旧 Node 版本兼容的代码。例如,您的代码:
if (user.address?.postal_code.length > 0 ) {
// Do stuff
}
变成:
var _user$address;
if (((_user$address = user.address) === null || _user$address === void 0 ? void 0 : _user$address.postal_code.length) > 0) {
// Do stuff
}
我正在尝试在我的 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",
...
}
您有 2 个选择
- 升级您的节点版本。只有 these 版本支持可选链接。如您所见,只有 Node 14.5+ 支持可选链接
- 如果您想支持旧版本(例如 12),则需要转译您的代码。看看Babel or TypeScript。这些程序获取您的代码并将其转换为与旧 Node 版本兼容的代码。例如,您的代码:
if (user.address?.postal_code.length > 0 ) {
// Do stuff
}
变成:
var _user$address;
if (((_user$address = user.address) === null || _user$address === void 0 ? void 0 : _user$address.postal_code.length) > 0) {
// Do stuff
}