用Node.JS查询MySQL并在网页中显示结果

我的目标是用Node.JS查询MySQL以获得更好的交互性。 我的查询是一个简单的SELECTJOIN 。 我设法构build了一个在控制台中显示结果的脚本,但在网页中显示时,我仍然陷入困境。 这是我的代码:

 var mysql = require('mysql'); var mySqlClient = mysql.createConnection({ host : 'server', user : 'login', password: 'pwd', database: 'db' }); var selectQuery = 'SELECT fields FROM table t1\ INNER JOIN table t2\ ON t1.field = t2.field'; mySqlClient.query( selectQuery, function select(error, results, fields) { if(error) { console.log(error); mySqlClient.end(); return; } if(results.length > 0) { console.log(results); } else { console.log('No data'); } mySqlClient.end(); }); 

什么是最好的方法将其纳入网页? 我需要用Node.JS创build一个httpServer吗?

非常感谢您的帮助!

编辑我想在使用Zend Frameworkdevise的PHP应用程序内使用Node.JS。 Node.JS应用程序不会是我的项目的唯一的应用程序。

最简单的方法是使用节点框架。 像快递 。

你会做类似的事情

 /*** omitting generic code for clarity ***/ app.get('/yourpage',function(req,res){ //On request of this page initiating sql query. Assumes that the object initialization is done above. mySqlClient.query( selectQuery, function select(error, results, fields) { if(error) { console.log(error); mySqlClient.end(); //render the template with error to be alerted res.render('tempaltefile',{data:null,error:error}); } if(results.length > 0) { //console.log(results); //render the template with fetched data res.render('tempaltefile',{data:results,error:null}); } else { //console.log('No data'); //render the template with empty data alert res.render('tempaltefile',{data:null,error:"no data"}); } mySqlClient.end(); }); }); 

回复评论

请提及您正在使用此端口的ph代码。 我认为你必须将节点代码放在一个API中,并在PHP端使用它。

我和你的情况一样,自从NodeJS以来,我无法连接到MySQL Zend。 我的解决scheme是使用:

最后,重新启动计算机以应用新的安装。

  • 在你的server.js文件中,你可以使用这段代码连接到你的HostDB:

    var app = require('http')。createServer(handler),mysql = require('mysql'),connectionsArray = [],connection = mysql.createConnection({host:'localhost',user:'USERNAME MYSQL',password :'PASSWORD MYSQL',database:'NAME MYSQLDATABASE',port:3306});