Node.js - может ли он использоваться для разработки приложений для настольных компьютеров - MySQL, DataTable & File Open - PullRequest
1 голос
/ 07 января 2020

Начиная с последних 3 дней, я после этого не уверен, что правильно понял его назначение - Node.js / Electron.

Несколько лет назад я построил простое приложение VB. net - оно подключается к Mysql (содержит таблицу имени файла с путем), показывает filenamesPath как строки в сетке, при двойном щелчке оно открывает файл

Могу ли я сделать такую ​​вещь в Node.js или Electron?.

1) Я могу создать файл js с помощью кнопки, которая может открыть локальный файл, в Node.js Окно настольного приложения ( не браузер ). [https://www.codediesel.com/nodejs/how-to-open-various-desktop-applications-from-nodejs/].

2) Также я могу просматривать mySql таблицу как html таблицу в браузере с localhost: port, а также строки в окне журнала консоли [https://www.sitepoint.com/using-node-mysql-javascript-client/]

Возможно ли объединить оба эти 2, или я должен попробовать что-то еще. [Поскольку строки больше 100КБ, потребуется также Ajax]

РЕДАКТИРОВАНИЕ: тест. html

<html>
<head>
    <script>window.$ = window.jQuery = require('./js/jquery.js');</script>
    <meta http-equiv="Content-Security-Policy" content="script-src 'unsafe-inline';">
</head>
<body>
<h1>Electron MySQL Example</h1>
<div id="resultDiv"></div>
<div>
    <input type="button" id="action-btn" value="Retrieve 10 first rows in the database" />
    <table id="table" border="1">
        <tbody>

        </tbody>
    </table>    
</div>
<script>
    var mysql      = require('mysql');
    var connection = mysql.createConnection({
      host     : '10.251.198.2',
      user     : 'root',
      password : '',
      database : 'test'
    });

    connection.connect();
    var sql = 'SELECT `id`,`name` FROM `employees`';
    connection.query(sql, function (error, results, fields) {
     if (error) console.log(error.code);
     else {
         console.log(results);
         $('#resultDiv').text(results[0].name); //emp_name is column name in your database
     }
    });
    connection.end(); 
</script> 

<!---New --->
<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     : '10.251.198.2',
                user     : 'root',
                password : '',
                database : 'test'
            });

            // 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 `employees` 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>
</body> 
</html>

Индекс. js

const electron = require('electron');
const app = electron.app;

const path = require('path');
const url = require('url');

const BrowserWindow = electron.BrowserWindow;

var mainWindow;
app.on('ready',function(){
  mainWindow = new BrowserWindow({
      width: 1024, 
      height: 768,
      webPreferences: {
            nodeIntegration: true
        },
      //backgroundColor: '#2e2c29'
  });
  //mainWindow.loadURL('https://github.com');
   mainWindow.loadURL(url.format({
    pathname: path.join(__dirname, 'test.html'),
    protocol: 'file:',
    slashes: true
  }));

});

Ответы [ 2 ]

3 голосов
/ 07 января 2020

Вы можете использовать Electron для создания настольного приложения и подключения к базе данных Mysql. Вот несколько полезных ссылок.

https://ourcodeworld.com/articles/read/259/how-to-connect-to-a-mysql-database-in-electron-framework

https://github.com/techiediaries/electron-mysql-demo

Node JS в основном используется для создать REST API, обслуживать веб-страницы с сервера. Вы можете создать API в Node JS, используя Express / Restify, который взаимодействует с БД, и приложение Electron может использовать эту услугу. Это зависит от ваших требований, хотите ли вы иметь уровень API.

1 голос
/ 07 января 2020

Конечно, вы можете создавать настольные приложения в настоящее время в Node, на самом деле есть несколько вариантов, которые вы можете выбрать:

Все эти фреймворки / технологии позволяют писать ваше приложение в Javascript и запускать его на настольных платформах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...