Ich habe eine Datenbank auf Heroku eingerichtet und ich habe eine Tabelle namens Benutzer mit 2 Datensätzen erstellt, und jetzt versuche ich, die Daten in meine Knoten-Anwendung durch Express zu bekommen.Daten von MySql über express
Ich habe eine Verbindung wie so in meiner app.js-Datei:
// connect to the heroku database
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'us-cdbr-iron-***-**.cleardb.net',
user : 'bfe4***0ede74',
password : '6742****',
database : 'heroku_****ee0f0e9102'
});
ich dann eine Route mit einem index.js Datei-Ordner haben:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
// res.render('layout', { title: 'Movieseat' });
connection.connect();
connection.query('SELECT * FROM `users` WHERE `first_name` = "Kees"', function (error, results, fields) {
// error will be an Error if one occurred during the query
// results will contain the results of the query
// fields will contain information about the returned results fields (if any)
console.log(results);
});
connection.end();
});
module.exports = router;
In diesem Index Route Ich versuche, den Datensatz von first_name Kees
zu dienen. Aber wenn ich meine Gastgeber besuchen bekomme ich folgende Fehlermeldung:
connection is not defined
ReferenceError: connection is not defined
So sieht es aus wie connection
keinen Hinweis in meiner Route-Datei hat, aber in meiner WebStorm IDE, wenn ich ctrl + Klick auf die Verbindung, die ich meine App zu bekommen. js Datei wo ich meine Verbindung definiere. Wie referenziere ich die Verbindung in meiner Routendatei?
Auch wenn ich die folgende Zeile in meiner index.js Route Datei Kommentar-:
res.render('layout', { title: 'Movieseat' });
bekomme ich den Fehler:
Error: Can't set headers after they are sent. What would be the propper way to request data and render a jade template?
, die nicht nach der ersten Anfrage funktionieren - mysql Verbindungen nach disconnect nicht wiederverwendbar sind, müssen Sie neue erstellen (oder keine Verbindung/Schließen in der Route-Handler oder benutze den Verbindungspool anstelle der Verbindung - die letzte Option wird bevorzugt) –
Ich stimme zu, sagte ich so viel im Text, aber ich versuchte ihn konzeptionell zu starten, indem ich löste, was er verlangte. – Paul