本文概述
Electron Framework允许你使用HTML, CSS和Javascript轻松创建桌面应用程序, 这已经令人印象深刻, 但是使用Chromium的Javascript Engine不足以创建可以完成与本机应用程序相同的任务的动态应用程序。感谢Node.js, 你将能够访问许多功能来创建出色的应用程序, 在这种情况下, 我们将使用mysql模块访问Electron中的MySQL数据库。
要求
要使用Node.js与MySQL进行互操作(在我们的示例中, 我们使用的Xampp包括PHPMyAdmin), 你需要以下名为mysql的节点包。
你可以在Node.js命令提示符下执行以下命令, 将此包添加到项目中:
npm install mysql
然后, 你将可以使用Javascript要求mysql模块。
注意:此模块是异常安全的。这意味着你可以继续使用它, 即使你的一个回调函数引发了使用” uncaughtException”或域捕获的错误。
实现
首先, 你需要首先学习如何使用mysql模块与数据库建立基本连接。你需要使用required()的检索到的对象创建一个连接, 然后将包含有关连接的基本信息(主机, 用户名, 密码和数据库名称)的对象作为第一个参数提供:
var mysql = require('mysql');
// Add the credentials to access your database
var connection = mysql.createConnection({
host : 'localhost', user : 'root', password : null, // or the original password : 'apaswword'
database : 'ourcodeworld-database'
});
// connect to mysql
connection.connect(function(err) {
// in case of error
if(err){
console.log(err.code);
console.log(err.fatal);
}
});
// Perform a query
$query = 'SELECT * FROM `myTableName` LIMIT 10';
connection.query($query, function(err, rows, fields) {
if(err){
console.log("An error ocurred performing the query.");
console.log(err);
return;
}
console.log("Query succesfully executed", rows);
});
// Close the connection
connection.end(function(){
// The connection has been closed
});
创建连接时, 请继续使用connect方法进行连接, 然后再使用连接的查询方法执行查询。最后使用end方法关闭连接。
你可以自定义并启用更复杂的功能, 阅读有关node.js的mysql模块的官方文档。既然你对与mysql的连接如何工作有了一点了解, 那么你将能够执行自己的查询, 由你决定如何编写和优化它们。
对于具有结构” ID, NAME”的表, 以下代码段将在html表中显示Articles表的前10行:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Connecting to MySQL</h1>
<br>
<input type="button" id="action-btn" value="Retrieve 10 first rows in the database" />
<table id="table" border="1">
<tbody>
</tbody>
</table>
</body>
<script>
var mysql = require('mysql');
function el(selector) {
return document.getElementById(selector);
}
el('action-btn').addEventListener('click', function(){
// Get the mysql service
getFirstTenRows(function(rows){
var html = '';
rows.forEach(function(row){
html += '<tr>';
html += '<td>';
html += row.id;
html += '</td>';
html += '<td>';
html += row.name;
html += '</td>';
html += '</tr>';
console.log(row);
});
document.querySelector('#table > tbody').innerHTML = html;
});
}, false);
function getFirstTenRows(callback){
var mysql = require('mysql');
// Add the credentials to access your database
var connection = mysql.createConnection({
host : 'localhost', user : 'root', password : null, database : 'ourcodeworld'
});
// connect to mysql
connection.connect(function(err) {
// in case of error
if(err){
console.log(err.code);
console.log(err.fatal);
}
});
// Perform a query
$query = 'SELECT `id`, `name` FROM `articles` LIMIT 10';
connection.query($query, function(err, rows, fields) {
if(err){
console.log("An error ocurred performing the query.");
console.log(err);
return;
}
callback(rows);
console.log("Query succesfully executed");
});
// Close the connection
connection.end(function(){
// The connection has been closed
});
}
</script>
</html>
结果应如下所示:
玩得开心 !
评论前必须登录!
注册