2017-06-24 34 views
0

這是一個非常奇怪的問題,我有。如何從按鈕呈現node.js中的句柄佈局?

我有一個登錄表單,這個登錄表單驗證您的數據並呈現檔案佈局,如果登錄成功或呈現註冊頁面,如果登錄不。

exports.logIn = function (req, res, data) { 
    var username = req.body.username.toString(); 
    var password = req.body.password.toString(); 
    connection.connection(); 
    global.connection.query('SELECT * FROM Utilizador WHERE Nome_Utilizador = ? LIMIT 1', [username], function (err, result) { 

if (result.length > 0) { 
    if (result) { 
    var object = JSON.parse(JSON.stringify(result)); 
    var userObject = object[0]; 
    var userQ = object[0].Nome_Utilizador; 
    global.connection.query('SELECT Password_Utilizador from Utilizador where Nome_Utilizador = ?', [username], function (err, result) { 
     console.log(result); 
     if (result.length > 0) { 
     if (result) { 
      var object2 = JSON.parse(JSON.stringify(result)); 
      var passQ = object[0].Password_Utilizador; 
      if (password == passQ) { 
      console.log("Login efectuado com sucesso"); 
      console.log(userObject); 
      res.render('home', { title: 'perfil', layout: 'perfil', data: userObject }); 
      } else { 
      console.log("1"); 
      } 
     } 
     } else if (err) { 
     console.log("asdsadas"); 
     } else { 
     console.log("2"); 
     res.render('home', { title: 'perfil', layout: 'registo' }); 
     } 
    }); 
    } 
} else if (err) { 
    console.log(err); 

} else { 
    console.log("Utilizador nao encontrado"); 
    res.render('home', { title: 'perfil', layout: 'registo' }); 
} 
}); 
}; 

This Works。

爲什麼它的工作是因爲它來自一個形式的方法和動作

<form id="login-nav" action="/login" method='POST' role="form" accept-charset="UTF-8" class="form"> 
       <div class="form-group"> 
        <label for="username" class="sr-only">Utilizador</label> 
        <input id="username" type="username" placeholder="Nome de utilizador" required="" class="form-control" name="username"> 
       </div> 
       <div class="form-group"> 
        <label for="exampleInputPassword2" class="sr-only">Palavra-Passe</label> 
        <input id="password" type="password" placeholder="Meta a palavra-passe" required="" class="form-control" name="password"> 
       </div> 
       <div class="checkbox"> 
        <label></label> 
        <input type="checkbox">Gravar Dados 
       </div> 
       <div class="form-group"> 
        <button id="botaoLogin" class="btn btn-danger btn-block">Fazer Login</button> 
       </div> 
       </form> 

不過,我試圖做同樣的事情用jQuery,因爲我需要渲染的唯一原因把手佈局上的按鈕,點擊一些產品,

$("#pacotes").on('click', ".produto", function() { 
    var prod = this.id; 
    console.log(prod); 
    $.get("http://localhost:3000/pacote?idPacote=" + prod); 
}); 

而且,儘管查詢工作,並給我data我要求

exports.Pacote = function (req, res) { 
    var pacote = req.query.idPacote; 
    connection.connection(); 
    global.connection.query('SELECT * FROM Pacotes WHERE idPacotes = ? ', [pacote], function (err, result) { 
    if (result.length > 0) { 
     if (result) { 
     var object = JSON.parse(JSON.stringify(result)); 
     var packObject = object[0]; 
     console.log(result); 
     res.render('home', { title: 'pacote', layout: 'pacote', data: packObject }); 
    } else if (err) { 
     console.log(err); 
    } 
    }; 
}); 
} 

它只是不呈現佈局,我不知道爲什麼。 做這樣的POST請求或通過表單做它之間的區別是什麼?

我不明白爲什麼這似乎只與形式的合作。 我可以這樣解決,但我不認爲使用空表格來顯示所有按鈕將是一個可行的解決方案。

回答

0

你只發出請求,你不處理返回值:

$.get("http://localhost:3000/pacote?idPacote=" + prod);

嘗試改用類似:

$.ajax({ method: 'GET', url: "http://localhost:3000/pacote?idPacote=" + prod, success: function(...) {...} });