Sails.js中的错误处理

 吴沫燃2502934477 发布于 2023-01-19 16:23

我刚开始使用Sails.js,这是一个了不起的框架.但我遇到了一些情况,我找不到谷歌的解决方案,所以我来到这里寻求帮助.

我有一个控制器连接到另一个远程服务,使用非常旧设计的API,充满XML响应和不一致性,将该服务包装在简单干净的API中.所以我有一些路由器,如:

list: function(req, res) {
    params = {
        ...
    }

    FooService.request(data, function(error, response) {
        res.send(response)
    })

    process.once('uncaughtException', function(err) {
        res.send(500, '[Foo] ' + err);
    });
},

'process.once'用于异步异常,可能在FooService.request进程中引发.我知道这是不好的代码,我的问题是:如何处理这种情况更多的Sails.js方式?

在Node.js中,我们有Domain和connect-domain,它们是针对这些问题而设计的.因为Sails.js基本上是Express,它可以很好地促进连接域,我认为可能有一些惯用的方法来做到这一点.

我试过在config/local.js中添加这个:

module.exports = {
    ...
    express: {
        customMiddleware: function(app) {
            console.log('Custom middleware config called')

            var domain = require('connect-domain')
            app.use(domain())
            .use(function(err, req, res, next) {
                console.log('Error catched!')
                res.send(500, '[Foo] ' + err)
            })
        }
    }
};

当发生未捕获的异常时,它不会崩溃服务器并且错误500被返回到客户端('app.use(domain())'工作).但是没有调用自定义错误处理程序.不知道为什么.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有