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

ESLint报Unexpected block statement surrounding arrow body怎么解决?

报错原因

这个是ESLint的arrow-body-style规则触发的校验提示,该规则默认要求:当箭头函数的逻辑仅包含返回单个值的操作时,省略冗余的块级大括号、return关键字,直接使用箭头函数隐式返回写法。

修复方案

方案1:按规则简化代码(推荐)

你给出的catchAsync函数外层箭头函数仅包含返回中间件函数的逻辑,直接简化为隐式返回即可解决报错:

// 简化后的catchAsync,去掉外层多余的大括号和return关键字
const catchAsync = fn => (req, res, next) => {
    fn(req, res, next).catch(next)
}

// 下方createTour的逻辑包含多行语句,无需修改
exports.createTour = catchAsync(async (req, res, next) => {
    const newTour = await Tour.create(req.body);
    res.status(201).json({
        status: 'success',
        data: {
            tour: newTour
        }
    })
})

方案2:调整ESLint规则

如果不想遵循该隐式返回的写法要求,可以在项目的ESLint配置文件(如.eslintrc.js、.eslintrc.json)中修改规则:

// 关闭该规则校验
"arrow-body-style": "off"

// 或配置为强制要求所有箭头函数都带大括号
"arrow-body-style": ["error", "always"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:39:02