2

在我用 nodejs 编写的 lambda 代码中,我想扩展httpErrorhandler中间件并围绕它创建一个包装器。

目前我有类似下面的东西。

module.exports.handler=middy(handle).use(httpErrorHandler(LoggingFactory.getLogger().log))

我想创建一个customHttpErrorHandler只是外面的包装器httpErrorHandler

module.exports.handler=middy(handle).use(customHttpErrorHandler(LoggingFactory.getLogger().log))

这可能吗?我需要在 customHttpErrorHandler 里面放什么?没有要实现的附加功能。这个新customHandler的应该只是将控制传递给 standard httpErrorHandler

customHttpErrorHandler可能如下所示(伪代码)。

connectHttpErrorHandler = (logger) => httpErrorHandler(logger)
4

2 回答 2

1

嗨,这里是 Middy 的核心维护者。您的伪代码几乎是正确的。在 Middy >=2.0.0 中,httpErrorHandler接受一个选项对象。有关文档,请参阅https://github.com/middyjs/middy/tree/main/packages/http-error-handler

const connectHttpErrorHandler = (logger) => httpErrorHandler({logger})

const logger = LoggingFactory.getLogger().log

module.exports.handler = middy(handler)
  .use(customHttpErrorHandler(logger))
于 2022-02-06T20:50:40.113 回答
-1
You should put a global error handler 

.Uncaught error from somewhere



 process.on('uncaughtException', function(error) {
        errorManagement.handler.handleError(error);
        if(!errorManagement.handler.isTrustedError(error))
        process.exit(1)
    });

.Unhandled promise rejection




 process.on('unhandledRejection', function(reason, p){
     //call handler here
     });
于 2022-02-01T09:55:32.833 回答