【问题标题】:Firebase cloud functions catch/handle errorFirebase 云函数捕获/处理错误
【发布时间】:2022-08-14 07:26:42
【问题描述】:

更新问题:错误:TypeError:res.json 不是函数

我将 Firebase Cloud Functions 与 Express 应用程序一起使用。我使用中间件处理错误,但它不起作用。使用throw new Error() 时如何捕获/处理错误?

我的代码如下:

app.get(\'/test\', (req, res) => {
    throw new Error(\'this is error\')
})

function errorHandler(err, req, res, next) {
    res.json({error: err.message}) // error here
}
app.use(errorHandler)

exports.api = functions.https.onRequest(app)

请帮我。非常感谢。

  • 您能否分享您用于代码的文档以及您计划如何实现错误捕获器?

标签: node.js express error-handling google-cloud-functions


【解决方案1】:

你可以使用 try/catch 来处理这样的错误:

app.get('/test', (req, res) => {
 try {
      // Your Code
    } catch (e) {
      console.error("error: ", e);
      res.status(500).send(e.message);
    }    
})

【讨论】:

  • 我想在一个常见的地方处理错误,因为我有很多功能。仅使用 Express 应用程序,它运行良好。仅使用 express 应用程序,它运行良好。
【解决方案2】:

我遇到过同样的问题。您需要一个 try/catch 来捕获错误,然后使用 next 函数将其传递到中间件链。

app.get('/test', (req, res, next) => {
    try {
        throw new Error('this is error')
    } catch (err) {
        next(err)
    }
})

function errorHandler(err, req, res, next) {
    res.json({error: err.message}) // error here
}
app.use(errorHandler)

exports.api = functions.https.onRequest(app)

将整个处理程序包装在 try 块中,它将始终将其传递给错误处理程序。

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多