2017-07-16 4 views
0

私は、クライアントが "登録ユーザー:" のように見ることができるように、MySQLのクエリを実行する方法を思っていたmysqlクエリをどのように渡して実行しますか?

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> 

これはクエリのみを表示しますが、実行しません。どのようにそれを実行する上の任意のアイデア?

+0

クエリの結果を処理する必要があります。 connection.query(countQuery、...あなたが望むものを含むべき結果を返します。 – Nick

答えて

1

あなたはクエリを実行しましたが、決して結果で何もしませんでした。その結果、rowsがコールバック関数で渡されます。

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

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

私は今、私の電話の上にいるので、明日これを見ていきます。あなたの時間を助けてくれてありがとう –

+0

これはうまくいかなかったクエリーをプレーンまたは[オブジェクトオブジェクト]に戻したとき –

+0

ejsファイルの '<%='を '<% - 'に変更してみてください@JavaSherwood – Wright

関連する問題