2016-04-21 79 views
1

我有一个函数,它以不同格式构造电子邮件地址并检查其有效性。一切工作在服务器端,但我努力在我的Jade模板中显示结果。一切看起来正确的,所以我不能确定什么错误..res.render不显示数据

#firstLast !{resultA} 
    #firstDotLast !{resultB} 
    #fInitialLastName !{resultC} 
    #fInitialDotLastName !{resultD} 
    #firstNameLInitial !{resultE} 
    #firstNameDotLInitial !{resultF} 
    #firstNameOnly !{resultG} 
    #lastNameOnly !{resultH} 
    #firstNameUnderscoreLastName !{resultI} 
    #fInitialUnderscoreLastName !{resultJ} 
    #firstNameUnderscoreLInitial !{resultK} 

快递(事先说一句抱歉这个嵌套的噩梦。一切正常,除了对底部的res.render)

app.get('/verify', function (req, res) { 
    var firstName = req.query.firstName; 
    var lastName = req.query.lastName; 
    var email = req.query.email; 

    var fInitial = firstName.charAt(0); 
    var lInitial = lastName.charAt(0); 


    var firstLast = firstName + lastName + email; 
    var firstDotLast = firstName + '.' + lastName + email; 
    var fInitialLastName = fInitial + lastName + email; 
    var fInitialDotLastName = fInitial + '.' + lastName + email; 
    var firstNameLInitial = firstName + lInitial + email; 
    var firstNameDotLInitial = firstName + '.' + lInitial + email; 
    var firstNameOnly = firstName + email; 
    var lastNameOnly = lastName + email; 
    var firstNameUnderscoreLastName = firstName + '_' + lastName + email; 
    var fInitialUnderscoreLastName = fInitial + '_' + lastName + email; 
    var firstNameUnderscoreLInitial = firstName + '_' + lInitial + email; 

    //console.log(fInitial + ' ' + lInitial) 

    //console.log(firstLast); 

    verifier.verify(firstLast, function(err, info){ 
    if(err) console.log(err); 
    else{ 
     var resultA = firstLast + ':' + ' ' + info.success; 
     console.log("Info: " + info.info); 

     verifier.verify(firstDotLast, function(err, info){ 
     if(err) console.log(err); 
     else{ 
      var resultB = firstDotLast + ':' + ' ' + info.success; 
      console.log("Info: " + info.info); 

      verifier.verify(fInitialLastName, function(err, info){ 
      if(err) console.log(err); 
      else{ 
       var resultC = fInitialLastName + ':' + ' ' + info.success; 
       console.log("Info: " + info.info); 

       verifier.verify(fInitialDotLastName, function(err, info){ 
       if(err) console.log(err); 
       else{ 
        var resultD = fInitialDotLastName + ':' + ' ' + info.success; 
        console.log("Info: " + info.info); 

        verifier.verify(firstNameLInitial, function(err, info){ 
        if(err) console.log(err); 
        else{ 
         var resultE = firstNameLInitial + ':' + ' ' + info.success; 
         console.log("Info: " + info.info); 

         verifier.verify(firstNameDotLInitial, function(err, info){ 
         if(err) console.log(err); 
         else{ 
          var resultF = firstNameDotLInitial + ':' + ' ' + info.success; 
          console.log("Info: " + info.info); 

          verifier.verify(firstNameOnly, function(err, info){ 
          if(err) console.log(err); 
          else{ 
           var resultG = firstNameOnly + ':' + ' ' + info.success; 
           console.log("Info: " + info.info); 

           verifier.verify(lastNameOnly, function(err, info){ 
           if(err) console.log(err); 
           else{ 
            var resultH = lastNameOnly + ':' + ' ' + info.success; 
            console.log("Info: " + info.info); 

            verifier.verify(firstNameUnderscoreLastName, function(err, info){ 
            if(err) console.log(err); 
            else{ 
             var resultI = firstNameUnderscoreLastName + ':' + ' ' + info.success; 
             console.log("Info: " + info.info); 

             verifier.verify(fInitialUnderscoreLastName, function(err, info){ 
             if(err) console.log(err); 
             else{ 
              var resultJ = fInitialUnderscoreLastName + ':' + ' ' + info.success; 
              console.log("Info: " + info.info); 

              verifier.verify(firstNameUnderscoreLInitial, function(err, info){ 
              if(err) console.log(err); 
              else{ 
               var resultK = firstNameUnderscoreLInitial + ':' + ' ' + info.success; 
               console.log("Info: " + info.info); 

               return res.render('index', { 
               "resultA": resultA, 
               "resultB": resultB, 
               "resultC": resultC, 
               "resultD": resultD, 
               "resultE": resultE, 
               "resultF": resultF, 
               "resultG": resultG, 
               "resultH": resultH, 
               "resultI": resultI, 
               "resultJ": resultJ, 
               "resultK": resultK 
              }); 
              } 
             }); 
             } 
             }); 
            } 
            }); 
           } 
           }); 
          } 
          }); 
         } 
         }); 
        } 
        }); 
       } 
       }); 
      } 
      }); 
     } 
     }); 
    } 
    }); 
}); 

客户端JS

$('#verify').click(function() { 
    var parameters = { 
    firstName: $('#firstName').val(), 
    lastName: $('#lastName').val(), 
    email: $('#email').val() }; 
    $.get('/verify', parameters, function(data) { 
    console.log('hey' + parameters); 
    }); 
}); 

的预期行为是EAC h电子邮件地址将返回true或false,并在每个对应的div中显示结果

+0

目前还不清楚是什么你正在尝试做的,你是为了显示在'$ .get'呼叫数据?您可以使用模板快速呈现数据服务器端,也可以使用'res.send'将数据发送到客户端并使用客户端代码进行呈现。 – Komo

+0

嘿@Komo我相信res.send只传递一个字符串。由于我有多个变量,我认为我需要使用res.render将当地人传递给视图。获取请求调用通过电子邮件地址进行检查的库。这一切都在'console.log'中工作,现在我只需要在视图中获取数据。有任何想法吗? –

+0

请使用承诺或异步。这是一个恶梦阅读/ –

回答

0

问题出在客户端的GET请求中,我还没有写完。从那里我意识到我正在使用res.render而不是res.send这是返回一个完整的模板,而不是我需要的对象。

成品和工作代码:

$('#verify').click(function() { 
    var parameters = { 
    firstName: $('#firstName').val(), 
    lastName: $('#lastName').val(), 
    email: $('#email').val() }; 
    $.get('/verify', parameters, function(data) { 
    console.log(data.resultA); //Returns full body of HTML 
    $('#firstLast').html(data.resultA); 
    $('#firstDotLast').html(data.resultB); 
    $('#fInitialLastName').html(data.resultC); 
    $('#fInitialDotLastName').html(data.resultD); 
    $('#firstNameLInitial').html(data.resultE); 
    $('#firstNameDotLInitial').html(data.resultF); 
    $('#firstNameOnly').html(data.resultG); 
    $('#lastNameOnly').html(data.resultH); 
    $('#firstNameUnderscoreLastName').html(data.resultI); 
    $('#fInitialUnderscoreLastName').html(data.resultJ); 
    $('#firstNameUnderscoreLInitial').html(data.resultK); 
    }); 
});