{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.
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) :
Une fois cela fait, vous voulez l'URL de la nouvelle base de données (pas localhost) :
Le résultat de la dernière commande sera similaire à :
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 :
De plus, vous devez définir des variables d'environnement pour votre application Heroku en cours d'exécution :
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)