#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