Все, что я хочу сделать, это вставить некоторые данные, если моя база данных не имеет этого, поэтому я вставляю Insert SQL в свою функцию обратного вызова моего Select SQL, но я получил ошибку как это:Node.js и mysql Обратный вызов: запрос в обратном вызове
{ [Error: Cannot enqueue Query after invoking quit.] code: 'PROTOCOL_ENQUEUE_AFTER_QUIT', fatal: false }
мой фрагмент кода здесь:
db.query('SELECT count(*) as Resultcount FROM tablename WHERE email = ? and password = ?', [post.email, post.password], function(error, result){
if (result[0].Resultcount == 0){
var query2 = db.query('INSERT INTO tablename SET ?', [post], function(err, result) {
if(err){
console.log(err);
}
console.log(result);
});
}
else{
console.log('have data already');
}
});
Может кто-нибудь дать мне несколько советов? Благодаря
---- обновление ----
фактически, функция обратного вызова выберите SQL не анонимная функция, мой фрагмент кода о db.end(), как это:
var QueryResults = new queryResultFuntion(Back_results);
db.query('SELECT count(*) as Resultcount FROM tablename WHERE email = ? and password = ?', [post.email, post.password], QueryResults.queryResult);
db.end();
Вы закрываете соединение с БД где-то после этого кода? – loganfsmyth
Да, когда я заканчиваю db.query ('select ...'), я вызывал db.end(); – Arvin
Это означает, что к моменту запуска вашего запроса INSERT соединение будет закрыто. Добавьте этот код к своему вопросу, и я отвечу. – loganfsmyth