Javascript 使用Node.js显示MySQL数据

Javascript 使用Node.js显示MySQL数据,javascript,mysql,node.js,Javascript,Mysql,Node.js,我正在制作一个小脚本,当我按下submit键时,我将表单数据输入到数据库表中 我想做的是在下一页显示添加的数据,即app.post for/form 目前我只有一名雇员……薪水。。。。。补充 但是我想显示我刚才添加的整行数据 现在,我该怎么做? 下面是我用来运行应用程序的server.js的代码 var express = require('express'); var path = require('path'); var bodyParser = require('body-parser')

我正在制作一个小脚本,当我按下submit键时,我将表单数据输入到数据库表中

我想做的是在下一页显示添加的数据,即app.post for/form

目前我只有一名雇员……薪水。。。。。补充 但是我想显示我刚才添加的整行数据

现在,我该怎么做? 下面是我用来运行应用程序的server.js的代码

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var app = express();
var mysql = require('mysql');
var connection = mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'',
    database:'employees'
});


app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.get('/', function (req,res){
    res.sendFile(path.join(__dirname,'index.html'));
});

app.get('/add-employee.html',function(req,res){
    res.sendFile(path.join(__dirname,'/add-employee.html'));
});

app.post('/add-employee.html',function(req,res){
    res.status(200).send();
    console.log('employee '+req.body.name + ' added');
});

connection.connect(function(err){
    if(err){
        console.log('Error connecting to Db');
        return;
    }
    console.log('Connection established');
});

app.post('/form',function (req,res){
    //employee details from add-employee.html page
var name=req.body.name;
var designation = req.body.designation;
var pan = req.body.pan;
var aadhar = req.body.aadhar;
var bank = req.body.bank;
var salary = req.body.salary;
var allowance = req.body.allowance;
var esi = req.body.esi;
var uan = req.body.uan;

var details = {name:name,designation:designation,pan:pan,aadhar:aadhar,
    bank:bank,salary:salary,allowance:allowance,esi:esi,uan:uan};

var query = connection.query('INSERT INTO employee_details SET ?',details,function(err,result){
    if(err){
        console.log(err);
    }
    console.log(query.sql);
}); 

connection.query('SELECT * FROM employee_details',function(err,rows){
  if(err) throw err;

  console.log('Data received');
  console.log(rows);
});


res.status(200).send('employee ' + name + 'with salary of '+salary+ ' added');
});




app.get('/add-company.html',function(req,res){
     res.sendFile(path.join(__dirname,'/add-company.html'));
});

app.get('/style.css',function(req,res){
    res.sendFile(path.join(__dirname,'/style.css'));
});

app.get('/main.js',function(req,res){
    res.sendFile(path.join(__dirname,'/main.js'));
});

app.get('/cmain.js',function(req,res){
    res.sendFile(path.join(__dirname,'/cmain.js'));
});

var port=8080;
app.listen(8080,function(req,res){
   console.log(`Payroll app listening on port ${port}!` );
});
我能够在控制台中看到select查询中的行。 但问题是我不知道如何在页面上显示。
如何操作?

插入后需要选择。 请注意查询是异步的

 var query = connection.query('INSERT INTO employee_details SET ?',details,function(err,result){
        if(err){
            console.log(err);
        }
        console.log(query.sql);

    connection.query('SELECT * FROM employee_details',function(err,rows){
      if(err) throw err;

      console.log('Data received');
      console.log(rows);
      res.status(200).send('employee ' + name + 'with salary of '+salary+ ' added');
    });
    });

删除下面的部分这将从调用此api的位置发送一个结果,您可以显示该结果

您的select查询仅返回一行?否,实际上,我添加了一名员工的详细信息,在我按下submit后,我希望它显示在页面上。例如,我添加的员工的详细信息,或者即使所有员工的详细信息都显示出来,它也会显示出来。但是它现在没有出现,即使它正在被添加到数据库中。我已经检查了从insert查询返回的结果对象inf函数(err,result)是否得到了插入的对象。做console.log,嗯。让我试试。是的,确实有用。我可以看到控制台中的行。但是,我如何在页面上显示它而不是在控制台中看到它呢?@faraz No.您在一系列中调用异步函数<代码>连接。连接,
连接。查询
是异步的。您应该在
connection
callback中调用
query
。具体来说,当您调用insert查询时,不必等待查询结果,也不必调用fetch查询。有时,获取查询可能在插入查询之前得到结果。所以您应该确保insert查询成功运行,然后调用fetch查询。您应该确保获取查询,然后将响应发送回客户端
connection.query('INSERT INTO employee_details SET    ?',details,function(err,result){
if(err){
    console.log(err);
}
else{
   res.status(200).send(result);
}
});