Соедините базу данных MySQL с приложением узла JavaScript - PullRequest
0 голосов
/ 28 марта 2020

Я создаю приложение узла JavaScript и развертываю его на cPanel, используя S SH. Приложение работает нормально без базы данных, но когда я соединяю приложение с базой данных на cPanel (GoDaddy), это занимает время и показывает сообщение «Ошибка при установлении соединения с базой данных». Мой код соединения

const mysql = require('mysql');
const express = require('express');
const app = express();

var pool = mysql.createConnection({
    host: 'localhost',
    user: '<MY_USER_NAME>',
    password: '<MY_PASSWORD>',
    database: '<DB_NAME>'
});

pool.connect(function(err) {
  if (err) throw err;
  else{
  console.log("Connected!");
  }
});



module.exports = pool;

маршрут, по которому БД взаимодействует, но потерял соединение.

app.post('/loginn', (req, res) => {
var id = req.body.id
  console.log("user_id= "+id);
  var sql = "select * from users where id  NOT IN ('" + id + "') ";
    pool.query(sql, function (err, rows) {
        if (err) throw err;
        else {
          res.render('allusers', {
            users: rows,
            user_id:id
          })
        }
    });
  });

1 Ответ

0 голосов
/ 29 марта 2020

Этот ответ примет форму пути отладки, потому что это единственный способ, который я вижу, чтобы понять суть вашей проблемы.

Давайте сделаем простейшее представление вашего приложения, чтобы убедиться, что вы можете отправить запрос на MySQL и получить ответ от обработчика маршрута в Express. Настройте свое приложение так:

const mysql = require('mysql');
const express = require('express');
const app = express();
const PORT = // define the PORT for your host

var connection = mysql.createConnection({
    host: 'localhost',
    user: '<MY_USER_NAME>',
    password: '<MY_PASSWORD>',
    database: '<DB_NAME>'
});

connection.connect(function(err) {
  if (err) console.error(err);
  console.log("Connected!");
});

app.get('/db-test', (req, res, next) => {

  var id = // fill in a user_id that you know exists
  var sql = `SELECT * FROM users WHERE id NOT IN ('${id}') `;

  console.log(sql); // confirm you are sending the sql request you believe you should be sending

  connection.query(sql, function (err, results, fields) {
      if (err) console.error(err);
      console.log(`results: ${results}\nfields: ${fields}`);
  });

});

app.listen(PORT);

А затем пройдите по маршруту /db-test из своего приложения и посмотрите, что произойдет. Если это сработает, то мы, по крайней мере, докажем, что вы МОЖЕТЕ делать запросы между Express и MySQL. Сейчас я не уверен, что вы можете, поэтому я не уверен, что нужно отлаживать.

...