原标题:Quelle est la cause de cette erreur de connexion Heroku MySQL ? (Essayer de connecter le frontend à la requête POST du backend) Identifier la source de l'erreur de connexion Heroku mysql lors de la connexion du frontend au backend
P粉021553460
P粉021553460 2023-12-13 12:40:42
0
1
637

{RESOLU}. Nouvelle erreur

Erreur de journal Heroku :

Error: connect ECONNREFUSED 127.0.0.1:3306
2021-09-23T18:24:12.236657+00:00 app[web.1]: at TCPConnectWrap.afterConnect.          [as        oncomplete] (node:net:1146:16) {
2021-09-23T18:24:12.236658+00:00 app[web.1]: errno: -111,
2021-09-23T18:24:12.236658+00:00 app[web.1]: code: 'ECONNREFUSED',
2021-09-23T18:24:12.236658+00:00 app[web.1]: syscall: 'connect',
2021-09-23T18:24:12.236659+00:00 app[web.1]: address: '127.0.0.1',
2021-09-23T18:24:12.236659+00:00 app[web.1]: port: 3306,
2021-09-23T18:24:12.236659+00:00 app[web.1]: fatal: true

Informations/Contexte :

Frontend React js (maintenant hébergé sur Netlifty) Backend Javascript Node utilisant Express et MYSQL2 (hébergé sur Heroku)

Objectif : Connectez la requête POST du frontend Neflifty au backend Heroku, récupérez les données de charge utile POST et insérez-les dans une table MYSQL.

Mise à jour : 24 septembre 2021

J'ai fait tout ce qui était suggéré. J'ai créé une nouvelle base de données en utilisant clearDB. Ajoutez-le et testez la connexion dans mysql Workbench. Les tables requises sont créées. Code backend mis à jour pour créer des connexions à de nouvelles bases de données. Vérifiez les variables Heroko et assurez-vous qu'elles sont correctement reflétées dans la nouvelle base de données. Il y a maintenant un problème d'autorisation. {Résolu}

Nouveau code backend corrigé :


const express = require('express');

const app = express();

const port = process.env.Port || 8000

app.list en(port);
console.log(`server is listing on ${port}`);
Délai d'attente


Question : Si cela se connecte localement sur l'atelier, pourquoi Heroku ne se connectera-t-il pas si je les ajoute en tant que variables ? {Réponse}

Nouvelle question : Pourquoi essaie-t-il d'utiliser le port 8000 alors qu'il devrait utiliser l'environnement ? Pourquoi le temps expire-t-il ?

Toute aide à ce sujet serait grandement appréciée.

P粉021553460
P粉021553460

répondre à tous(1)
P粉610028841

Vous ne pouvez pas vous connecter à la base de données car aucune instance de base de données n'est en cours d'exécution sur Heroku. Une fois que vous aurez poussé le code à l'aide de la CLI Heroku, Heroku configurera une application NodeJS pour vous, mais cela ne signifie pas qu'il configurera également une base de données pour vous.

Vous pouvez ajouter une base de données à votre application via l'interface ou la CLI de Heroku. Depuis la CLI (nous allons configurer ClearDB, mais n'importe quel plugin de base de données MySQL fonctionnera) :

heroku addons:create cleardb:ignite

Une fois cela fait, vous voulez l'URL de la nouvelle base de données (pas localhost) :

heroku config | grep CLEARDB_DATABASE_URL

Le résultat de la dernière commande sera similaire à :

mysql://:@/?reconnect=true

Maintenant, avec cela, vous devez modifier légèrement votre code avec les nouvelles informations. Vous ne souhaitez pas exposer les informations d'identification de la base de données dans le contrôle de version, vous pouvez donc le faire en utilisant des variables d'environnement :

const db =  mysql.createConnection({
    connectionaLimit: 50,
    user: process.env.DB_USER,
    host: process.env.DB_HOST,
    password: process.env.DB_PASSWORD,
    database: process.env.DATABASE,
    port: 3306
});

De plus, vous devez définir des variables d'environnement pour votre application Heroku en cours d'exécution :

heroku config:set DB_USER=
heroku config:set DB_PASSWORD=
heroku config:set DB_HOST=
heroku config:set DATABASE=

Vous disposez désormais d'une instance de base de données exécutée sur Heroku et d'une instance d'application NodeJS qui peut se connecter à la base de données.

Pour en savoir plus, vous pouvez consulter ces liens :

https:// /lo-victoria.com/build-a-mysql-nodejs-crud-app-4-deploying-to-heroku-finale

https://www.bezkoder.com/deployment-node-js-app-heroku-cleardb-mysql/

https://raddy.co.uk/blog/how-to-deploy-node-js-express-ejs-mysql-website-on-heroku-cleardb/(Cette interface utilise Heroku)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!