个性化阅读
专注于IT技术分析

如何在Electron Framework中连接到MySQL数据库

本文概述

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>

结果应如下所示:

MySQL Electron连接

玩得开心 !

赞(0)
未经允许不得转载:srcmini » 如何在Electron Framework中连接到MySQL数据库

评论 抢沙发

评论前必须登录!