gpt4 book ai didi

javascript - FeathersJS - 如何取消错误 Hook

转载 作者:行者123 更新时间:2023-12-03 04:09:44 26 4
gpt4 key购买 nike

在我的注册服务中,我创建了一个“before” Hook 来检查用户是否已经注册参加锦标赛。如果发现用户已注册,我会抛出错误。

根据feathersjs文档:

If a promise fails, the error will be propagated immediately and will exit out of the promise chain.

我遇到的问题是错误被“触发”并显示用户已经注册,但注册仍然发生。这意味着,钩子(Hook)永远不会“退出”。

这是我的函数

exports.checkRegistered = () => {
return (hook) => {
let tourneyId = hook.data.tourneyId
let userId = hook.data.userId

return hook.service.find({
query: {
tourneyId: tourneyId,
userId: userId
}
}).then(reg => {
// User already registered
if (reg.data.length != 0) {
// Also tried to return a promise with same result.
// return Promise.reject(new Error('Already registered.'))
throw new Error('Already registered');
}
}).catch(err => {})
}
}

这是我的“钩子(Hook)之前”对象

exports.before = {
create: [
api.checkRegistered()
]
};

最佳答案

问题是.catch(err => {})。它将返回一个刚刚成功解析为 undefined 的 Promise,然后它会继续钩子(Hook)链,就好像没有发生错误一样。删除它应该可以解决您的问题。

关于javascript - FeathersJS - 如何取消错误 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379683/

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