Как использовать db.query из файла .js - PullRequest
0 голосов
/ 11 июня 2019

Структура документа:

|-public/
  |-js/
   |-shop.js
|-views/
|-routes/
|app.js

Я определил свое sql-соединение в своем app.js

const mysql = require('mysql');

const db = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: 'password',
    database: 'pfis'
});

db.connect((err) => {
    if (err) {
        throw err;
    }
    console.log('Connected to database');
});

global.db = db;

Все sql запросы в app.js работают нормально!

Моя проблема в том, что у меня есть файл shop.js (см. Структуру каталогов), в который нужно вставить некоторые sql (хранимые процедуры) после того, как они нажали на элемент кнопки на моей странице. И я не могу понять, как этого добиться.

пример shop.js (который не работает!):

function purchaseClicked() {
    var stoel = prompt("Enter your chairnumber: ");
    alert('Someone is on this way with the ATM-machine');
    var cartItems = document.getElementsByClassName('cart-items')[0];
    while (cartItems.hasChildNodes()) {
    var itemTitle = document.getElementsByClassName('cart-item-title')[0].innerHTML;
    var itemQuantity = document.getElementsByClassName('cart-quantity-input')[0].value;

        db.query("Call test1_insert(" + itemTitle + ", " + itemQuantity + ", " + stoel + ");",
            function (error, results, fields) {
                if (error) {
                    alert("Something went wrong, try again!");
                }
                alert("Looks like all good!");
            });




        cartItems.removeChild(cartItems.firstChild);
    }
    updateCartTotal();
}

Я пытался добавить тот же код соединения с БД из app.js (см. Фрагмент кода выше) в файл shop.js, но это тоже не нравится.

Кто может мне помочь, как выполнить SQL из "внешнего" файла .js?

1 Ответ

2 голосов
/ 12 июня 2019

Я использую Sequelize для этого.Файл БД выглядит так:

var sequelize = new Sequelize(mysqlDatabase, mysqlUser,mysqlPassword, {
    host: mysqlHost,
    dialect: 'mysql',
    pool: {
        max: 1000,
        min: 0,
        idle: 10000
    },
    //logging: logger.info
    logging: false
});

var db = {};
db.Shop = sequelize.import(__dirname + '/models/Shop.js');
module.exports = db;

После создания файла БД вы можете добраться до магазина следующим образом:

const db = require('path/to/sequelize/file');
db.Shop.create(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...