mysql - cannot response.write on connection node.js -
मैंने इस कोड को नोड। Js में लिखा है:
var http = need ('http '); Http.createServer (function (req, res) {res.writeHead (200, {'content-type': 'text / plain'}); res.write ('start \ n'); var mysql = require ('mysql '); Var कनेक्शन = mysql.createConnection ({host:' hostname ', उपयोगकर्ता:' उपयोगकर्ता ', पासवर्ड:' पास ', डेटाबेस:' dbname ',}); connection.connect (); connection.query (' SELECT कोड से उपयोगकर्ता_प्रकार ', फ़ंक्शन (गलती, पंक्तियां, फ़ील्ड) {यदि (गलती) गलती हो तो; // इसके लिए सभी परिणामों पर चलाना है (var i = 0; i & lt; 2; i ++) {res.write ( 'नाम:', पंक्तियां [i]। Code);}}); connection.end (); res.end ('end');})। सुनो (8080); Console.log ('सर्वर चल रहा है'); मेरे प्रश्न हैं: 1. मेरे एचटीएल पृष्ठ में लूप के लिए res.write क्यों प्रिंट नहीं किया गया? 2. क्या लिखने के बजाय के लिए 2 में?
-
मुद्दा यह है निष्पादन का समय।
चूंकि connection.query () एसिंक्रोनस है, यह कॉलबैक फ़ंक्शन के निष्पादन को जब क्वेरी समाप्त होने में देरी करता है, लेकिन कोड के आसपास के ब्लॉक को इस बीच जारी रखने की अनुमति देता है res.end ('end') res.write ('name:', rows [i]। Code) से पहले निष्पादित किया जा रहा है। । । < P> res.end () में देरी करने के लिए, उसे कॉलबैक के अंदर ले जाएं: connection.query (..., फ़ंक्शन (गलती, पंक्तियों, फ़ील्ड) {If (err) फेंकता है, तो (...) {res.write ('name:', rows [i]। Code);} res.end ('end');}); -
पंक्तियां एक सरणी होनी चाहिए, जब कोई त्रुटि , तो आप इसका उपयोग कर सकते हैं: के लिए (var i = 0; i & lt; rows.length; i ++) { यह भी एक सामान्य है लंबाई के मान को स्टोर करने का अभ्यास करें
Comments
Post a Comment