Я пытаюсь реализовать экспресс в моем приложении для доступа к таблицам базы данных, и для этого я наткнулся на этот пакет .Я реализовал папку server
(которая запускается вместе со скриптом yarn start
через concurrently
и nodemon
) с index.js
следующим образом:
const express = require('express');
const mysql = require('mysql');
const app = express();
const con = mysql.createConnection({
host: 'xxxxx',
user: 'xxxxx',
password: 'xxxxx',
database: 'xxxxx',
});
con.connect( err => {
if (err) {
console.log(err);
}
})
app.get('/api/fetch-list', (req, res) => {
// code to fetch
});
const PORT = 3001;// process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`App server now listening on port ${PORT}`);
});
Затем маршрут / путь / api/ fetch-list вызывается в этом компоненте:
import React from 'react';
import axios from 'axios';
function renderTable() {
axios.get(`${process.env.PUBLIC_URL}/api/fetch-list`).then(res => {
console.log(res.data);
});
}
export function component() {
return (
<div>
{renderTable()}
</div>
);
}
И этот компонент отображается после перехода на http: localhost: 3000 / table.Поэтому, запустив проект и перейдя по этому адресу, я получаю следующую ошибку в консоли терминала:
{ Error: getaddrinfo ENOTFOUND xxxxx xxxxx:3306
at errnoException (dns.js:50:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
--------------------
at Protocol._enqueue (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/Connection.js:119:18)
at Object.<anonymous> (/home/gfcf14/Desktop/greendream-redesign/src/server/index.js:27:5)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'xxxxx',
host: 'xxxxx',
port: 3306,
fatal: true }
Я не уверен, почему это может происходить.Я знаю, что учетные данные, которые я использую, являются правильными, учитывая, что это работает на моем сайте со старым php-кодом.На мгновение я подумал, что это может быть связано с тем, где находится моя база данных, так как она размещена на 1 & 1 (ionos), и они не предоставляют мне выделенный сервер.Поэтому я изменил учетные данные на пространство с промежуточным хостом, где у меня есть другая база данных (учетные данные, которые я все еще использую), и вместо этого я получаю эту ошибку:
{ Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'xxxxx'@'myipaddress' (using password: YES)
at Handshake.Sequence._packetToError (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
at Handshake.ErrorPacket (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18)
at Protocol._parsePacket (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:291:23)
at Parser._parsePacket (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Parser.js:433:10)
at Parser.write (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Parser.js:43:10)
at Protocol.write (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket.<anonymous> (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/Connection.js:91:28)
at Socket.<anonymous> (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/Connection.js:525:10)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
--------------------
at Protocol._enqueue (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/Connection.js:119:18)
at Object.<anonymous> (/home/gfcf14/Desktop/greendream-redesign/src/server/index.js:27:5)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
code: 'ER_ACCESS_DENIED_ERROR',
errno: 1045,
sqlMessage: 'Access denied for user \'xxxxx\'@\'myipaddress\' (using password: YES)',
sqlState: '28000',
fatal: true }
Так что она также не работает для этой.Возможно, мне придется проверить разрешения для этого сайта (которые на первый взгляд кажутся READ & WRITE
), но как мне установить соединение для работы первой базы данных?Пожалуйста, дайте мне знать, если вы увидите что-то, что я, возможно, пропустил