Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Javascript 那就答应吧,抓住机会_Javascript_Node.js_Email_Promise - Fatal编程技术网

Javascript 那就答应吧,抓住机会

Javascript 那就答应吧,抓住机会,javascript,node.js,email,promise,Javascript,Node.js,Email,Promise,我的nodejs服务器有问题 我想要的是,如果我的数据库中存在电子邮件,我想向该地址发送电子邮件,但如果没有,我想向客户端发送错误消息 我有一个控制器: reset(req, res) { return this.service.getByEmail(req.body.email) .then(this.mapper.outputEmail.bind(this.mapper)) .then(res.json.bind(res)).catch(res.send.bi

我的nodejs服务器有问题

我想要的是,如果我的数据库中存在电子邮件,我想向该地址发送电子邮件,但如果没有,我想向客户端发送错误消息

我有一个控制器:

reset(req, res) {
   return  this.service.getByEmail(req.body.email)
      .then(this.mapper.outputEmail.bind(this.mapper))
      .then(res.json.bind(res)).catch(res.send.bind(res));
  }
我用post方法发送电子邮件。我使用一个服务,呼叫我的db查找该电子邮件,我有一个映射器:

 outputEmail(outputEmail){
      return {
      email: outputEmail.email
    };
  }
我的服务:

getByEmail(correo) {
    return this.db.find({
      where: { email: correo }
    });
  }
我的问题是,如果我得到一个空的json对象,我不知道如何控制。。如果我发送了一封不存在的邮件,我会得到一个
{}
响应,但是如果我发送了一封存在的邮件,我会得到{email:erwrr@gmail.com}


我想要的是,如果我得到一个空的json,我只想返回一个错误,说明电子邮件不存在,但是如果db中的查询得到一个真实的电子邮件,我想继续执行另一个方法,将电子邮件发送到该地址。

您正在尝试确定json对象上是否有电子邮件字段。只要做:

outputEmail(outputEmail){
    if(outputEmail.email){
        return {
            email: outputEmail.email
        };
    }else{
        throw new Error("No email found!");
    }
}

您可以在服务内部抛出异常,这些异常将由catch块拾取。这打破了铁链的执行链,就是这样!非常感谢。