Node Express MySql Sql запрос не работает - PullRequest
0 голосов
/ 22 января 2019

Я очень новичок в Node Express, я пытался изучить его, следуя некоторым учебникам

Ниже сегмента кода работает отлично он показывает

Экспресс-сервер работает под номером порта: 3000 БД соединение успешно установлено.

const mysql = require("mysql");
const express = require('express');
var app = express();
const bodyparser = require('body-parser');

app.use(bodyparser.json());


var mysqlConnection = mysql.createConnection({
    host:'localhost', 
    user:'root',
    password:'',
    database:'employeedb'
});

mysqlConnection.connect((err)=>{
  if(!err)
  console.log('DB connection succeded.');
  else
  console.log('DB connection failed \n Error : '+ JSON.stringify(err,undefined,2));
});

app.listen(3000,()=>console.log('Express server is running under port no : 3000'));

Затем я попытался запустить ниже сегмента кода

app.get('/ab',(req,res)=>{
    console.log("test1");
  mysqlConnection.query('SELECT * FROM employee',(err,rows,fields)=>{
     console.log("test2");  
     if (!err){
     console.log(rows);
      res.send(rows);
  }
     else{
     console.log(err);
   }
  })

console.log("test3");

});

Проблема в том, что браузеру требуется много времени, чтобы показать ответ, и он показывает

localhost не отправил никаких данных.ERR_EMPTY_RESPONSE

Но в терминале только test1 и test3 напечатаны

, насколько мне известно, если ошибка существует, ошибка должна отображаться.не правда ли?Но здесь ошибка не отображается.Пожалуйста, помогите мне исправить эту ошибку

Ответы [ 4 ]

0 голосов
/ 22 января 2019

Вы просто создаете новую переменную для БД и вызываете переменную БД для своего запроса.Тогда ваш фрагмент кода будет выглядеть так:

const mysql = require("mysql");
const express = require('express');
var app = express();
const bodyparser = require('body-parser');

app.use(bodyparser.json());


var mysqlConnection = mysql.createConnection({
    host:'localhost', 
    user:'root',
    password:'',
    database:'employeedb'
});

const db = mysqlConnection.connect((err)=>{
  if(!err)
  console.log('DB connection succeded.');
  else
  console.log('DB connection failed \n Error : '+ JSON.stringify(err,undefined,2));
});

app.listen(3000,()=>console.log('Express server is running under port no : 3000'));

, тогда просто вызовите db для вашей цели

app.get('/ab',(req,res)=>{
    console.log("test1");
  db.query('SELECT * FROM employee',(err,rows,fields)=>{
     console.log("test2");  
     if (!err){
     console.log(rows);
      res.send(rows);
  }
     else{
     console.log(err);
   }
  })

console.log("test3");

});

Надеюсь, это сработает!

0 голосов
/ 22 января 2019

Попробуйте сузить возможности изменения запроса до ...

ВЫБРАТЬ * ОТ ОГРАНИЧЕНИЯ сотрудника 1

в настоящее время вы возвращаете все записи в таблице сотрудников, что может занять больше времени, чем время ожидания запроса. Для начала просто верните 1 запись.

0 голосов
/ 22 января 2019

В вашем коде нет ошибки / ошибки .Я пробовал в моей системе и получаю точно такой же вывод. PFA .

Все три консоли:

enter image description here

Данные, которыесуществуют в БД

enter image description here

Код:

const mysql = require("mysql");
const express = require('express');
var app = express();
const bodyparser = require('body-parser');

app.use(bodyparser.json());


var mysqlConnection = mysql.createConnection({
    host:'localhost', 
    user:'root',
    password:'root',
    database:'employeedb'
});

mysqlConnection.connect((err)=>{
  if(!err)
  console.log('DB connection succeded.');
  else
  console.log('DB connection failed \n Error : '+ JSON.stringify(err,undefined,2));
});
app.get('/ab',(req,res)=>{
  console.log("test1");
mysqlConnection.query('SELECT * FROM employee',(err,rows,fields)=>{
   console.log("test2");  
   if (!err){
   console.log(rows);
    res.send(rows);
}
   else{
   console.log(err);
 }
})

console.log("test3");

});


app.listen(3000,()=>console.log('Express server is running under port no : 3000'));
0 голосов
/ 22 января 2019

Вы пробовали, когда вызывается запрос get, затем подключите базу данных?

app.get('/ab',(req,res)=>{
  mysqlConnection.connect((err)=>{
    if(!err){
      console.log('DB connection succeded.');
      mysqlConnection.query('SELECT * FROM employee',(err,rows,fields)=>{
          console.log("test2");  
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...