2017-01-21 2 views
-1

Я создаю небольшой скрипт, в который я ввожу данные формы в таблицу базы данных, когда я нажимаю кнопку submit.Отобразить данные MySQL с помощью Node.js

То, что я хочу сделать, это показать дополнительные данные на следующей странице, т.е. app.post для/форм

на данный момент я получаю только работник ...... с зарплатой ... .. добавлено Но я хочу отобразить всю строку данных, которые я только что добавил.

Теперь, как это сделать? вот код для 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 в консоли. Но проблема Я не знаю, как отобразить это на самой странице. Как мне это сделать?

+0

Ваш запрос на выборку returing только одну строку? –

+0

нет, на самом деле я добавляю детали одного сотрудника, и после того, как я нажимаю кнопку отправки, я хочу, чтобы она появилась на странице. I.e детали сотрудника, которого я добавил, или он будет делать, даже если появятся все данные о сотрудниках. , но он пока не отображается, хотя он добавляется в базу данных. Я проверил, что – faraz

+0

ваша функция inf объекта результата (ошибка, результат), возвращенная из запроса вставки, может получить вставленный объект. do console.log, что –

ответ

1
connection.query('INSERT INTO employee_details SET ?',details,function(err,result){ 
if(err){ 
    console.log(err); 
} 
else{ 
    res.status(200).send(result); 
} 
}); 

Удалить ниже часть будет отослан результат, из которого вы назвали эту апи, и вы можете показать, что результат

1

Вам необходимо выбрать после вставки. Обратите внимание на запросы async.

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'); 
    }); 
    }); 
+0

ну, я не понимаю. Aint Я уже делаю это ??? – faraz

+0

@faraz Нет. Вы вызываете функцию aync в серии. 'connection.connect',' connection.query' являются асинхронными. Вы должны вызывать 'query' внутри callback соединения. А для конкретного, когда вы вызываете запрос insert, вы не ждете результата запроса и запроса на выборку. Иногда ваш запрос на выборку может получить результат до ввода запроса. Итак, вы должны убедиться, что ваш запрос на вставку успешно запущен, а затем запрос на выборку. И вы должны обеспечить получение запроса, а затем отправить ответ клиенту –

Смежные вопросы