我正在学习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)。 我需要更新数据库而不更新或刷新整个页面,这意味着我不能使用提交表单。 最好的方法是什么呢?

#1楼 票数:1 已采纳

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

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!")
            }
        }
    });
}

#2楼 票数:0

我使用了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");
    });
  });
});

  ask by Hejhejhej123 translate from so

未解决问题?本站智能推荐:

1回复

使用Node.js/Express刷新页面?

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

Node.JS:使用Express创建新页面

我试图找到一种方法来在用户提交表单时使用Express在Node.JS上动态创建新页面。 这是我的想法,但它不起作用: 最好的方法是什么?
1回复

使用Node.js将MySQL数据打印到HTML页面

这是我第一次学习Node.js。 我试图将MySQL中的数据打印到HTML页面中,但是每当我在浏览器http://localhost:3000/index.html加载网站时,都会在网页上收到此消息: Cannot GET /index.html 。 但是,当我在浏览器中加载此http://
1回复

使用Node.js/Express.js使用获取的mysql数据填充html下拉列表

尝试使用 Express.js 使用数据填充选择下拉列表。 项目结构 用户表 MySQL配置文件数据库连接.js 索引.js 索引.html 应用程序.js 运行上面的代码,我得到这个: 但是,我希望得到这个下拉列表: 要求: 如何从用户表中获取 MySQL 数据并显示在 index.html
2回复

使用带有Express的Node.js将表单数据发布到MySQL

我正在尝试在Node中编写一个简单的server.js,它将来自我的html文件的表单数据发布到MySQL中。 但是我收到语法错误。 我将在下面发布代码和错误。 我正在努力解决此问题。 如果我输入yahoo2作为名称,这是我得到的错误- 您的SQL语法有误; 检查与您的MySQL
1回复

如何将URL查询解析到mysql数据库中?使用node.js和express

我必须将 url 查询中的名称和宽度等信息存储到我的 mysql 数据库中,并且 url 查询应如下所示 我想我无法理解通过 URL 查询发送的代码获取输入的初始过程。 这是我的代码的 /register 部分。 任何帮助表示赞赏。
1回复

使用Node.js将SQL对象保存到文件

我需要将对象rows保存在文件中或将其保存到 JSON 文件中。app.get('/getposts', (req, res) => { mysqlConnection.query('Select * from posts', (err, rows, fields) => { i
1回复

使用Node.js自动保存数据

现在我正在使用 Node.js/MySQL/React 构建一个基于团队的项目,并且一直停留在待办事项列表部分。 我想知道如何自动将数据或选项保存到数据库并且每行没有任何提交按钮的推荐或最快方法是什么。 待办事项