私のデータベースにはないデータが挿入されているので、Select SQLのコールバック関数にInsert 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();
あなたは
db.end()
コールあなたがインナー
INSERT
クエリを実行しようとすると、あなたが新しいをキューしようとしているように、データベース接続が、エラーPROTOCOL_ENQUEUE_AFTER_QUITしたがって、閉鎖されています、
SELECT
が完了したら閉じるように、接続をキューに入れます
このコードの後のどこかでDB接続を終了していますか? – loganfsmyth
はい、db.query( 'select ...')を終えると、私はdb.end()を呼び出しました。 – Arvin
これは、INSERTクエリが実行されるまでに接続が閉じられることを意味します。あなたの質問にそのコードを追加してください。私は答えを出します。 – loganfsmyth