【问题标题】:can't set headers after they sent in node js在节点 js 中发送后无法设置标头
【发布时间】:2014-11-21 17:24:27
【问题描述】:

我正在使用带有 express 框架的 nodejs,我的数据库是 postgres db。我有 2 个问题。第一个,当我使用 select 查询执行登录验证时,假设如果用户不在 db 中,查询将终止如何正确执行我可以在这里使用 if else 而不在 end 上使用 query ajax 调用。

script.
  $(document).ready
    console.log('bbbbbbbb');
    $('#loginform').submit(function(e) {
    console.log('submit called');
    var data = {};
    data.email = $('#username').val();
    data.password = $('#password').val();
    JSON.stringify(data);
    console.log(data);


    $.ajax({
      url: "/login",
      type: "POST",
      dataType: 'json',
      data: JSON.stringify({ "objectData": data}),
      contentType: "application/json",

      success: function(data) {
        alert('SUCCESS":'+JSON.stringify(data));
        var successVar = data;
        alert(successVar.data);
        if(successVar.data == "Invalid username And Password"){
        location.href='/';
        }
        if(successVar.data == "Login successfully"){
          location.href='http://localhost:3000/landing';
        }


      },

    });
  return false;
  });
My call 


     exports.login = function(req, res) {
      var resultObject = (req.body.objectData);
      var user = client.query("SELECT * FROM login where email_id='" + resultObject.email + "'            AND password='" + resultObject.password + "'");

     user.on("row", function(row ,err) {
     console.log(row);

     var register_id = row.login_id;
     console.log(register_id);

     res.send({data:"Login successfully"});
     res.render('landing.jade');
     });

     user.on("end", function(result) {
     res.send({data:"Invalid username And Password"});

     });

     };

【问题讨论】:

    标签: node.js


    【解决方案1】:

    享受这段代码

    exports.login = function(req, res) {
        console.log("enter the login999999999");
        console.log(req.body); 
      var resultObject = (req.body.objectData);
    
     client.query("SELECT * FROM login where email_id='" + resultObject.email + "' AND password='" + resultObject.password + "'", function(err, result) {
        console.log("Row count: %d",result.rows.length);  // n
        if(result.rows.length>0){
            console.log('successfully');
            res.send({data:"Login successfully"});
        } else {
            console.log('not successfully');
            res.send({data:"Invalid username And Password"});
        }
    });
     };
    

    【讨论】:

      【解决方案2】:

      很简单:

       res.render('landing',{'data':data})
      

      【讨论】:

      • 虽然我尝试这个但它不会呈现页面
      猜你喜欢
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      相关资源
      最近更新 更多