请求节点.js后浏览器显示错误

browser display error after request node.js

本文关键字:显示 错误 浏览器 节点 js 请求      更新时间:2023-09-26

我正在尝试使用 node 和 mysql 将一些数据插入数据库,我设法完成了它,但是在查询响应后浏览器不断加载,我尝试池化仍然没有任何反应

这是我的代码

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false })
var sql = require('mysql');
var pool  = sql.createPool({
  host     : 'localhost',
  user     : 'root',
  password : '',
  port      : '3306',
  database : 'node'
});
app.get('/nodeThis', function (req, res) {
  res.sendFile(__dirname + '/insert.html');
});
app.post('/nodeThis', urlencodedParser, function (req, res) {
    var post={user_name:req.body.name1,user_what:req.body.what,user_why:req.body.why};
    pool.getConnection(function(err, connection){
        connection.query('INSERT INTO user SET ?', post, function(err){
            if(err){
              console.log(err);
            }else{
              console.log('succes');

            }
        });
        connection.release();
    });
});
server.listen(3000);

这是我如何将数据从 HTML 传递到节点的方法

<html>
    <body>
        <div>   
            <form action="/nodeThis" method="post">
                <input type="text" name="name1">
                <input type="text" name="what">
                <input type="text" name="why">
                <button class="boom">Submit</button>
            </form>
        </div>
    </body>
</html>

数据库操作后,您不会向浏览器发送任何响应;您只是将输出发送到控制台;浏览器正在等待从未到来的响应

如果在控制台.log('succes');之后插入res.sendFile(__dirname + '/insert.html');或其他一些响应,您将在浏览器上看到输出。

话虽如此,我希望这只是一个概念证明,而不是生产代码。

根据评论进行更新

检索受影响的行数

运行执行数据库插入函数后

 
   db.query("insert into table", [data-to-insert], function(err, result){
   //to retrieve the number of rows affected
   var number_of_rows = result.affectedRows
})
 
结果 具有一个名为 受影响行的属性,该属性允许用户知道插入、更新或删除了多少行

若要检索插入行的主 ID(如果有),结果具有一个名为 insertId 的属性。

  
   var id = result.insertId
 

希望这有帮助!