你如何传递和执行mysql查询?

时间:2017-07-16 21:19:18

标签: javascript mysql sql node.js

我想知道如何执行mysql查询,以便客户端可以看到"用户已注册: 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>

这只显示查询但不执行它。关于如何执行它的任何想法?

1 个答案:

答案 0 :(得分:1)

您确实执行了查询,但您从未对结果做过任何操作。结果是在回调函数中传递了rows

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

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