[英]Querying MySQL with Node.JS and display results in webpage
我的目标是使用 Node.JS 查询 MySQL 以获得更好的交互性。 我的查询是一个带有JOIN
的简单SELECT
。 我设法构建了一个在控制台中显示结果的脚本,但是在网页中显示它时我有点卡住了。 这是我的代码:
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 创建一个 httpServer 吗?
非常感谢您的帮助!
编辑我想在使用 Zend Framework 设计的 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。 我的解决方案是使用:
Node-mysql 插件(安装到 nodejs 控制台的命令: npm install mysql
)
安装 MySQL ODBC 连接器 ( http://dev.mysql.com/downloads/connector/ ) 插件。
最后,重新启动计算机以应用新安装。
在您的 server.js 文件中,您可以使用以下代码连接到您的 HostDB:
var app = require('http').createServer(handler), mysql = require('mysql'), connectionsArray = [], connection = mysql.createConnection({ host: 'localhost', user: 'USERNAME MYSQL', password : 'PASSWORD MYSQL', 数据库: 'NAME MYSQLDATABASE', 端口: 3306 });
app.post('/qr', function(req, res) {
console.log("Check QR code.");
let now = moment().format('MMMM Do YYYY, h:mm:ss a');
let subnow = now.substr(0, 8);
let subnowwild = subnow + "%";
connection.query("select exists (select * from visit where timeIn like ?)", subnowwild, function(err, result) {
if (err) throw err;
console.log(result);
if(result = 0) {
res.redirect(307, '/savedata');
}
else {
res.redirect(307, '/updatedata');
}
});
});
所以我想看看用 mysql 获取数据时的响应是什么样的,这个网页出现了,但没有显示我正在寻找的答案。
你也可以使用res.send(result);
如果您希望查询将数据作为 json 响应返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.