node.js - nodejs + mysql: how can i reopen mysql after end()? -
कोड निम्नानुसार है:
var mysql = require ('mysql'); Var कनेक्शन = mysql.createConnection ({host: 'localhost', port: "3306", डेटाबेस: "mydb", उपयोगकर्ता: 'रूट', पासवर्ड: '007007',}); Var isCon = true; Connection.connect (function (err) {console.log (isCon); if (err) {isCon = false; console.error ("त्रुटि जोड़ने:" + err); return;};}); If (isCon) {connection.query ('tb_items से' चुनें ', फ़ंक्शन (गलती, परिणाम) {यदि (गलती) फेंकता है, console.log (' समाधान है: ', परिणाम); console.log (' टाइपऑफ समाधान है ', टाइपफ (परिणाम)); डीबगर;}); connection.end (); } Connection.connect (function (err) {console.log (isCon); if (err) {isCon = false; console.error ("error connecting:" + err); return;};}); If (isCon) {connection.query ('tb_items से' चुनें ', फ़ंक्शन (गलती, परिणाम) {यदि (गलती) फेंकता है, console.log (' समाधान है: ', परिणाम); console.log (' टाइपऑफ समाधान है ', टाइपफ (परिणाम)); डीबगर;}); connection.end (); }
मैं बस () -> कनेक्ट () -> क्वेरी () -> अंत (), फिर इसे फिर से किया था, लेकिन दूसरी बार, एक त्रुटि है: त्रुटि: उद्धरण प्रारंभ करने के बाद हाथ मिलाने के लिए एन्क्यू नहीं किया जा सका। प्रश्न: शायद मैं अंत () के बाद इसे फिर से नहीं खोल सकता। लेकिन मैं सिर्फ कन्नी चाहता हूं, अगर मैं अंत (), मैं इसे कैसे फिर से खोल सकता / सकती हूं?
नहीं, आप नहीं कर सकते, सिर्फ एक और एक बनाएं कनेक्शन के संबंध में सभी राज्य केवल वर्तमान कनेक्शन के लिए प्रासंगिक हैं, इसलिए "पुनः खोलेंसमैक कॉन्फिफ" विधि संभव है, लेकिन आपको वास्तव में इसे बाहर से करना चाहिए।
इसके अलावा, आपको प्रत्येक क्वेरी पर कनेक्शन बंद करने की आवश्यकता नहीं है - बस इसे बिना कॉल के पुनः उपयोग करना जारी रखें .end ()
यदि आप एकाधिक चाहते हैं कनेक्शन और कनेक्शन के स्वत: निपटाने के लिए आपको पूल कक्षा का उपयोग करना चाहिए।
एक और नोट: आपका isCon
चेक गलत है, connection.query
को पहले कहा जाता है कनेक्ट ()
कॉलबैक इसलिए यह हमेशा सच है यह केवल query
कॉलबैक में त्रुटि की जांच करने के लिए सुरक्षित है यदि कनेक्शन सफल नहीं था तो एक कतारबद्ध कमांड में प्रचार किया जाता है
Comments
Post a Comment