gpt4 book ai didi

node.js - next() promise 错误处理

转载 作者:搜寻专家 更新时间:2023-11-01 00:42:21 25 4
gpt4 key购买 nike

错误处理的最佳方式是什么?我需要自定义 json 错误消息。这是一个 API。

exports.putCurso = function (req, res, next) {
util.updateDocument(req.curso, Curso, req.body);
req.curso.saveAsync()
.then(function (data) {
return res.status(201).json({message: 'Curso atualizado.', data: data});
})
.catch(function(error) {
return res.status(500).json({message: 'ERROR!'});
//OR return next(error); but I need custom json error messages so it doesn't make sense
})
.finally(next); //OR return next(error)? redundant?
};

最佳答案

我不是 Mongoose ,但我对表达和 promise 了解一两件事

exports.putCurso = function (req, res, next) {
util.updateDocument(req.curso, Curso, req.body);
req.curso.saveAsync()
.then(function (data) {
res.status(201).json({message: 'Curso atualizado.', data: data});
}, function(error){
res.status(500).json({message: 'ERROR!'});
})
};

这基本上就是您所需要的。根据实现,这可能是一条正常的路由,因为它总是向客户端返回一些东西 (res.json)。因此,您不必调用 next,因为它是供中间件调用的

此外,您不必返回任何内容,因为当您调用 res.json 时,它基本上表示此请求到此结束,仅此而已。

最后但同样重要的是,根据规范,promise then 支持两个函数,第一个用于处理成功案例,第二个用于处理异常。因此,您不必调用 catch

关于node.js - next() promise 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com