繁体   English   中英

使用 node.js/express 将数据保存到 mysql 而不刷新页面

Save data to mysql with node.js/express without refreshing page

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在学习 node.js 并且我已经设法通过表单提交将数据保存到 mysql 中。 代码如下所示:

    app.post('/auth', function(request, response) { 
    let date = request.body.date;
    let user = request.body.user;
    let email = request.body.email;
    connection.connect(function(err) {
                if (err) throw err;
                console.log("Connected!");
                var sql = "INSERT INTO demotable (date, user, email) VALUES (?,?,?)"; 
                connection.query(sql, [date, user, email], function (err, result) {
                  response.end(); 
                });
              });
});

这有效,数据被添加到表中,但是因为我使用输入提交,所以之后我会进入一个新页面(/auth)。 我需要更新数据库而不更新或刷新整个页面,这意味着我不能使用提交表单。 实现这一目标的最佳方法是什么?

2 个回复

我通过在客户端使用 AJAX POST 请求来完成此操作。 与其让您的按钮提交表单,不如让它执行具有 onclick 属性的 function。 您可以使用它们的 ID 获取每个输入的值。 至于服务器端路由,只需使用res.send()或您想要发送简单响应的任何内容。 在下面的 function 中,收到的响应非常简单。 在您的路线上,如果身份验证失败,只需执行res.send({"status": "failed"})之类的操作,AJAX 调用将收到该消息,请参阅 (response callback).status 失败并提醒用户,同样如果身份验证成功(只是在 res.send() 调用中将 failed 更改为成功)。 希望这有帮助!

function authenticate() {
    $.ajax({
        type: "POST",
        url: "/auth",
        data: {
            "date": Date.now(),
            "user": document.getElementById('usernameInput').value,
            "email": document.getElementById('emailInput').value
        },
        success: function(data) {
            if(data.status == "success") {
                alert("successfully authenticated!")
            } else if(data.status == "failed") {
                alert("failed authentication!")
            }
        }
    });
}

我使用了 bobmartin1234 提供的代码。 在服务器端,我编写了以下代码:

app.post('/auth', function(request, response) { 
let user = request.body.user 
let email = request.body.email;
let date = new Date(); //I added the date on the serverside instead

connection.connect(function(err) {
    if (err) throw err;
    console.log("Connected!");
    var sql = "INSERT INTO demotable (date, user, email) VALUES (?,?,?)"; 
    connection.query(sql, [date, user, email], function (err, result) { 
      if (err) throw err;
      console.log("1 record inserted");
    });
  });
});
1 使用 Node.js / Express 刷新页面?

用户连接后,我需要在我的小型 Node 和 Express 应用程序中刷新页面。 我在第二个片段中尝试res.redirect('index.html') ,但是当我尝试连接到根 URL 时会引发错误。 当用户连接到根 URL 时运行以下代码: 我检测到用户何时连接: 提前致谢! ...

3 如何使用Node.js实时刷新页面

因此,我制作了一个HTML页面,该页面从服务器读取JSON格式的文本文件,并将其解析以与Google Maps API一起使用。 (在地图上画一些线,协调以JSON格式的文本记录的数据) 现在,我真的是Node.js的新手,但是我听说可以用它进行异步处理。 我的目标是: ...

4 将数据保存到MySQL并使用该数据更新页面而不刷新

我正在尝试将评论表单中的数据保存到MySQL数据库中,然后使用该注释更新页面,而无需用户刷新。 类似于Facebook评论的工作方式。 我到处搜索了这个问题的答案,但我找不到符合我需求的答案。 这是将表单数据提交到php脚本的AJAX: 我知道目前不会使用此脚本更新页面,因 ...

8 如何在不刷新页面的情况下将数据保存到Mysql

我认为代码如下: 这是控制器代码: 我可以只发送邮件而无需刷新页面吗? 我听说CakePHP和AJAX可以使其工作,但我还是CakePHP和Javascript的新手。 我希望你们能帮助我。 非常感谢你。 该页面的text2可以将页面转回原位,但无法正常工作。因此,我希望 ...

9 单击提交按钮后如何使用Node.js刷新页面

我需要你的帮助。 我有一个按钮,可以复制某些内容,并且该“内容”应立即出现在页面上。 问题在于该按钮具有复制功能,但是现在我必须手动刷新页面才能看到更改。 我不认为这有些棘手,但我尝试了以下尝试但没有成功: 我的意思是,如果我将"submit"更改为"button" ,它可 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM