Java Sherwood
Java Sherwood

Reputation: 9

How do you pass and execute a mysql query?

I was wondering how to execute a mysql query so that the client can see like "users registered: number"

Server.js:

var http = require('http');
var ejs = require('ejs');
var fs = require('fs');
var mysql = require('mysql');
var connection = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: 'root',
    database: 'kitsune',
    connectionLimit: 50,
    port: 3306 });

connection.connect(function(err) {
    if (err) throw err;
});
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});
module.exports = connection;

http.createServer(function(req,res) {
  res.writeHead(200, {'Content-Type': 'text/html'});

  fs.readFile('index.html', 'utf-8', function(err, content) {
    if (err) {
      res.end('error occurred');
      return;
    }
    var countQuery = "SELECT Count(ID) AS NumberOfPenguins FROM Penguins"; console.log(countQuery);
connection.query(countQuery, function(err, rows) {
  if (err) throw err;
  console.log('Connected!');
});

    var renderedHtml = ejs.render(content, {countQuery: countQuery});
    res.end(renderedHtml);
  });
}).listen(80);

index.html:

<html>
   <head>
   </head>
<body>
Users registered: <%= countQuery %>
</body>
</html>

This only shows the query but it does not execute it. Any idea on how to execute it?

Upvotes: 0

Views: 221

Answers (1)

Wright
Wright

Reputation: 3424

You executed the query sure but you never did anything with the results. The result is the rows passed in the callback function.

connection.query(countQuery, function(err, rows) {
  if (err) throw err;

  var renderedHtml = ejs.render(content, {countQuery: rows});
  res.end(renderedHtml);
});

Upvotes: 1

Related Questions