2016-03-31 6 views
0

das ist mein js Datei Code:Wie rendern HTML-Seite in node.js mit HTTP-Antwortobjekt?

fs.readFile(__dirname+'/product_list.html',function(error,productForm){ 
    if(error){ 
     response.write("error in getting file"+error); 
    }else{ 
      connection.query("select * from products",function(err,result){ 
      if(err){ 
       console.log("In funciton errr"); 
      }else{ 
       response.writeHead(200, "OK", {'Content-Type': 'text/html'}); 
       response.write(productForm,{result:result}); 

       } 
     }); 
    response.end(); 
    } 
}); 

i auf product_list.html Seite führen wollen .....

+0

können Sie eine Template-Engine als 'ejs' oder andere verwenden es schneller auf diese Weise sein und sauberen –

+0

i render auf product_list.html Seite aber ... nicht Ergebnis Objekt auf t bekommen Hut Seite – Hemant

Antwort

1

Das Problem, das Sie ist haben, dass connection.query asynchron ist, Sie response.end() innerhalb der Callback aufrufen sollte Funktion von connection.query

fs.readFile(__dirname+'/product_list.html',function(error,productForm){ 
    if(error){ 
     response.write("error in getting file"+error); 
     response.end(); //finish here 
    }else{ 
     connection.query("select * from products",function(err,result){ 
      if(err){ 
       console.log("In funciton errr"); 
       response.end(); //finish here 
      }else{ 
       response.writeHead(200, "OK", {'Content-Type': 'text/html'}); 
       response.write(productForm,{result:result}); 
       response.end(); //finish here 
      } 
     }); 
    } 
}); 
+0

Danke für die Antwort ..... nach diesem Code hinzufügen ... das gleiche Problem ist ihre ..... Render-Seite, aber nicht bekommen Ergebnisobjekt in product_list.html Seite – Hemant

+0

ihre ist eine andere Möglichkeit, das zu tun ... .kein Framework verwenden ... – Hemant

+0

Was ist 'productForm' und' {result: result} '? Verwenden Sie eine Vorlagen-Engine? dann sollte es 'response.render (productForm, {result: result})' –