Невозможно выполнить Sql-запрос в node.js использование MySQL

#javascript #mysql #node.js #express

#javascript #mysql #node.js #экспресс

Вопрос:

Ниже приведен мой server.js содержимое файла. Когда я пытаюсь его выполнить, это занимает слишком много времени, и, наконец, я получаю «Ошибка в запросе!» Хотя таблица accounts содержит 1 строку, но все же что-то кажется неправильным. Пожалуйста, кто-нибудь может мне помочь с этим!

 const express = require('express')
const app = express()

const mysql = require('mysql')
const db = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'myDatabase',
  port: '8090'
});

app.set('view-engine', 'ejs')

db.connect(function(error){
    if(!error){
        console.log('Error');
    } else {
        console.log('Connected');
    }
}) 


app.get('/test', (req, res) => {
    let sql ='SELECT * FROM accounts';
   
    db.query(sql,function(error, rows, fields) {
        if(!!error){
            console.log('Error in the query!');
        } else{
            console.log('Successful query');
            console.log(rows[0]);;
        }
    })
   
   
})
app.get('/', (req, res) => {
    res.render('index.ejs')


app.on('close', function() {
    db.end();
});
app.listen('3000', ()=>{
    console.log('Server started on port 3000')
})
  

Редактировать:

Я получаю эту ошибку:

Ошибка в запросе! Ошибка: не удается поставить запрос в очередь после фатальной ошибки. в Protocol._validateEnqueue (E:Screen Совместное использование приложения InovantisMeetsnode_modulesmysqllibprotocolProtocol.js:212:16) в Protocol._enqueue (E:Screen Совместное использование App InovantisMeetsnode_modulesmysql lib protocolProtocol.js:138:13) при подключении.запрос (E:Screen Совместное использование приложения InovantisMeets node_modules mysql lib Connection.js:198:25)

Комментарии:

1. Это выглядит как проблема с таймаутом. Сколько записей у вас в таблице accounts? Как время выполнения запроса напрямую в БД? Измените ваш запрос на SELECT * FROM accounts LIMIT 1;

2. @SlavaRozhnev Я пробовал это, но все та же проблема. Это занимает слишком много времени и выводит в консоли «Ошибка в запросе»

3. Добавьте clonsole.log(ошибка) и посмотрите, какая произошла ошибка

4. @SlavaRozhnev Я получаю эту ошибку: ошибка в запросе! Ошибка: не удается поставить запрос в очередь после фатальной ошибки. в Protocol._validateEnqueue (E:Screen Совместное использование приложения InovantisMeetsnode_modulesmysqllibprotocolProtocol.js:212:16) в Protocol._enqueue (E:Screen Совместное использование App InovantisMeetsnode_modulesmysql lib protocolProtocol.js:138:13) при подключении. запрос (E:Screen Совместное использование приложения InovantisMeets node_modules mysql lib Connection.js:198:25)

5. Вы уверены в порте 8090 MySQL? По умолчанию это 3306