页面不工作错误,节点 js 冻结

Page isn't working error, Node js freezes

我是第一次使用 Node,在触发特定响应时遇到了问题。在这种情况下,我正在检查用户名和密码是否与我在 DynamoDB 中的相匹配。当用户名和密码与我的数据库不匹配时,它会重定向到我的页面,但是当它匹配时,我的所有 console.log 输出都会打印两次(这显然与 Chrome 中的图标有关)像 "online" 和“[pw] + database.js”,但它也冻结了我的 IDE 和终端。然后我在浏览器中看到 "The page isn't working, localhost didn't send any data" 错误。忽略隐私问题:) Thoughts?

database.js:

var myDB_lookup = function(username, password, route_callbck){
      console.log('Looking up: ' + username);   
      users.get(username, function (err, data) {
        if (err) {
          route_callbck(null, "Lookup error: "+err);
        } else if (data == null) {
          route_callbck(null, null);
        } else {
          // JSON object that stores password & fullname
          var value = JSON.parse(data[0].value);
          var pw = value.password;
          if (pw.valueOf() == password.valueOf()){
              route_callbck({ password : pw }, null);
              console.log(pw + "database.js");
          }else{
              //console.log('wrong password');
              route_callbck(null, null);
          }
        }
      });
};

routes.js:

var checkLogin = function(req,res){
    var user = req.body.username;
    var pw = req.body.password;
    console.log(user + pw + "routes");

    db.lookup(user, pw, function(data, err) {
          if (data!=null){
              console.log("online"); 
              //req.session.username = user;
              //req.session.password = pw;
          }else{
              res.render('main.ejs',{error:"Fields incorrect"});
          }
    });

};

main.ejs:

<form method="post" action="/checklogin">
    Enter username here: <br>
    <input type="text" name="username" placeholder = "Your username"> <br>
    Enter password here: <br>
    <input type="password" name="password" placeholder = "Your password">
    <input type="submit" value="Log In">
</form>

当我做 module.exports = ...

时,所有功能都链接在 routes.js 中

您可能忘记发送回复,请确保

res.render() or res.json() or res.send() 被命中

你应该在 JSON.parse() 周围加上 try/catch,这是最佳做法。

看起来你的罪魁祸首就在这里:

         if (data!=null){
              console.log("online"); 
              //req.session.username = user;
              //req.session.password = pw;

              // you need to send the response here too!  <<<<<
             res.render('main.ejs'); //// !!!
          }else{
              res.render('main.ejs',{error:"Fields incorrect"});
          }