Как упаковать nodemon в сборщик электронов (исполняемый файл) - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть Electron JS и node.js проект с базой данных MySQL на cPanel для виртуального хостинга. Это мой пакет. json file

{
    "name": "app_name",
    "version": "1.0.0",
    "main": "main.js",
    "devDependencies": {
        "electron": "^8.0.0",
        "electron-builder": "^22.3.2",
        "electron-packager": "^14.2.1"
    },
    "scripts": {
        "start": "electron .",
        "startServer": "nodemon index.js",
        "build": "electron-packager .",
        "dist": "electron-builder",
        "dev": "npm run start",
        "all": "npm-run-all --parallel startServer start"
    },
    "build": {
        "appId": "com.myapp.app",
        "productName": "myapp",
        "target": "NSIS",
        "directories": {
            "output": "build"
        },
        "nsis": {
            "allowToChangeInstallationDirectory": true,
            "oneClick": false
        }
    },
    "dependencies": {
        "D": "^1.0.0",
        "body-parser": "^1.19.0",
        "express": "^4.17.1",
        "http": "0.0.0",
        "https": "^1.0.0",
        "mysql": "^2.18.1",
        "npm-run-all": "^4.1.5"
    }
}

Это мой index. js файл, который используется для соединения с MySQL на cPanel общего хостинга.

const mysql = require('mysql');
const express= require('express');
var app=express();
const bodyparser=require('body-parser');

app.use(bodyparser.json());

var mysqlConnection = mysql.createConnection({
    host:'************', //Shared Hosting Public Address
    user: '************', // Username
    password: '************', //User Password
    database:'************' // Database Name
});

mysqlConnection.connect((err)=>{
    if(!err)
    {
        console.log('Connection Successed!');
    }
    else
    {
        console.log('Connection Failed! Error:'+JSON.stringify(err,undefined,2));
    }
});

var port = process.env.port || 3000;

app.listen(port,()=>console.log('Offline Express server is running at at port no :3000'));

//Get all users
app.get('/users', (req, res) => {
    mysqlConnection.query('SELECT * FROM users', (err, rows, fields) => {
        if (!err)
        {
            res.send(rows);
        }
        else
        {
            console.log(err);
        }

    })
});

Далее, это фрагменты кода для вызова API для получения пользователей пользователей. js

const options = {
        method: "GET",
        headers: {
            'Content-Type': "application/json"
        },
        //body: JSON.stringify(data),
        hostname: 'localhost',
        port: 3000,
        path: '/users'
    };
    const http = require('http');
    const req = http.request(options, (res) => {
        res.on('data', (chunk) => {

            let json = JSON.parse(chunk);

            var count=0;
            json.forEach(users => {
                    count=1;
            });
            if(count==1)
            {
                console.log("Data Found");
            }
            else
            {
                console.log("Not Found");
            }

        });
        res.on('end', () => {
            console.log('No more data in response.');
        });
    });

    req.on('error', (e) => {
        console.error(`problem with request: ${e.message}`);
    });
    req.on('success', (e) => {
        console.error(`Successed with request: ${e.message}`);
    });

    req.end();

Я выполняю команду в терминале узла npm запустить все , определенные в пакете . json файл для запуска нескольких npm. Он работает нормально, и я могу получить доступ к пользователям моей базы данных

Проблема:

Я упаковываю свое приложение с npm run dist, Исполняемый файл успешно работает, но когда я пытаюсь получить доступ к пользователям моей базы данных, он показывает эту ошибку:

проблема с запросом: connect ECONNREFUSED 127.0.0.1:3000

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