Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我可以将异常抛出代码包装到回调中吗?_Node.js - Fatal编程技术网

Node.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) {

我正在尝试创建一个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(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);}