Node.js 我可以将异常抛出代码包装到回调中吗?
我正在尝试创建一个node.js express应用程序,该应用程序使用。但是,ldap.js使用异常,例如,在dn.js中:Node.js 我可以将异常抛出代码包装到回调中吗?,node.js,Node.js,我正在尝试创建一个node.js express应用程序,该应用程序使用。但是,ldap.js使用异常,例如,在dn.js中: if (cur >= len || name[cur++] !== '=') throw invalidDN(name); // creates a new Error 在客户端代码中,我使用函数(err,res)模式: client.search(groupDn, searchOpts, [], function(searchErr, res) {
if (cur >= len || name[cur++] !== '=')
throw invalidDN(name); // creates a new Error
在客户端代码中,我使用函数(err,res)
模式:
client.search(groupDn, searchOpts, [], function(searchErr, res) {
if(searchErr){
callback(searchErr);
} else {
res.on('searchEntry', function (entry) {
callback(null, entry);
});
res.on('end', function () {
unbind(client);
});
res.on('error', function(err) {
callback(err);
})
}
});
问题是,如果我传入一个无效的groupDn
,它会抛出一个异常,这意味着它不会在这里通过我的处理程序
我想知道是否有一种通用方法可以将异常引入
函数(err,res)
模式-是否有一些自动包装器?(现在,我到处乱扔try/catch,但混合两种不同的风格是很奇怪的)你说的“带来例外”是什么意思?为什么不在传递之前检查一下groupDn
?或者只使用try/catch?@ArthurKay这只是一个特定的示例,代码会抛出其他实例。由于我是node.js新手,我想知道除了到处手动尝试/捕获之外,是否还有一个通用模式。@Cristy我想知道是否有一个“包装器”可以使用类似library.doStuff(“input”,function(err,res){…})
的片段,并自动将其转换为类似var doStuff callback=function(err,res)的内容{…};试试{library.doStuff(“输入”,doStuff回调);}catch(e){doStuff回调(e);}
。你说的“带来异常”是什么意思?为什么不在传入前检查groupDn
?或者只使用try/catch?@ArthurKay这只是一个特定的例子,代码会抛出其他实例。由于我是node.js的新手,我想知道除了手动尝试/捕获之外,是否还有一个通用模式。@Cristy我想知道是否有一个“包装器”这需要像library.doStuff(“input”,function(err,res){…})
这样的片段,并自动将其转换为var-dostufcallback=function(err,res){…};尝试{library.doStuff(“input”,dostufcallback);}catch(e){dostufcallback(e);}
。