2017-10-24 1 views
0

Ich habe versucht, mein Projekt auf Heroku zu schieben und verbindedbd mit der Anwendung. Ich gebe jacksdb info in meine server.js ein und aktualisiere sie dann zu heroku. Aber ich bekomme diesen Fehler und die Anwendung wird nicht geladen. Ich denke, es hat etwas damit zu tun, wie ich die Datenbank aufstelle.JawsDB Fehler beim Verbinden mit Heroku

ich folgende "Zugang für Benutzer verweigert" empfange Fehler:

https://ibb.co/giRO5m

dies ist mein Code: server.js

var express = require('express'); 
var bodyParser = require('body-parser'); 
var mysql = require('mysql'); 
var logger = require('morgan'); 
var request = require('request'); 
var cheerio = require('cheerio'); 
var methodOverride = require('method-override') 
var fs = require("fs"); 
var hbs = require('hbs'); 
// Set up Express 
var app = express(); 
var router = express.Router(); 

//handlebars 
var handlebars = require('express-handlebars').create({defaultLayout:'main'}); 
app.engine('handlebars', handlebars.engine); 
app.set('view engine', 'handlebars'); 
// override with POST having ?_method=DELETE 
app.use(methodOverride('_method')) 


// Set up Mysql 
var con = mysql.createConnection({ 

    host: "t89yihg12rw77y6f.cbetxkdyhwsb.us-east-1.rds.amazonaws.com", 
    port: 3306, 
    user: "swvr0i1j9ny720mk", 
    password: "e3lzkqag4dmeqhup" 
}); 

//conecting to mysql 
con.connect(function(err) { 
    if (err) throw err; 
    console.log("Database connected to the matrix.."); 
}); 

con.query('CREATE DATABASE IF NOT EXISTS warehouse', function (err) { 
    if (err) throw err; 
    con.query('USE warehouse', function (err) { 
     if (err) throw err; 
     con.query('CREATE TABLE IF NOT EXISTS storage(' 
      + 'id INT NOT NULL AUTO_INCREMENT,' 
      + 'PRIMARY KEY(id),' 
      + 'link VARCHAR(255),' 
      + 'item VARCHAR(255),' 
      + 'stock VARCHAR(255)' 
      + ')', function (err) { 
       if (err) throw err; 
      }); 
    }); 
}); 

// Parse application/x-www-form-urlencoded 
app.use(logger('dev')); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 


// Serve static content for the app from the "public" directory in the application directory. 
app.use(express.static(__dirname + '/public')); 


//prints database to page 
app.get('/index', function(req,res) { 

    con.query('SELECT * FROM storage;', function(err, data) { 
     if (err) throw err; 

     //test it 
     //console.log('The solution is: ', data); 

     //test it 
     //res.send(data); 

     res.render('index', {storage : data}); 
    }); 
}); 

//delete data entry 
app.delete('/delete', function(req,res){ 
    con.query('DELETE FROM storage WHERE id = ?', [req.body.id], function(err, result) { 
     if (err) throw err; 
     res.redirect('/index'); 
    }); 
}); 

// Open Server 
app.listen(process.env.PORT || 3000, function(){ 
    console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env); 
}); 

Antwort

0

JawsDB nicht lassen Sie den Datenbanknamen wählen oder erstellen Sie einen neuen Datenbanknamen. Stattdessen müssen Sie über ein Workbench-Tool eine Verbindung herstellen und sehen, welchen Datenbanknamen sie Ihnen gegeben haben (z. B. im Folgenden wird mein Datenbankname JawsDB zugewiesen).

default schema by JawsDB

Verwenden Sie dann diese Datenbank im Code statt der von Ihnen genannten „Lager“. Wenn ich dies zum Beispiel mit dem für mich benannten Schema "JawsDB" tun würde, würde ich "jdjkhrjps1cgj89h"

con.query('USE jdjkhrjps1cgj89h', function (err) { 
    if (err) throw err; 
    con.query('CREATE TABLE IF NOT EXISTS storage(' 
     + 'id INT NOT NULL AUTO_INCREMENT,' 
     + 'PRIMARY KEY(id),' 
     + 'link VARCHAR(255),' 
     + 'item VARCHAR(255),' 
     + 'stock VARCHAR(255)' 
     + ')', function (err) { 
      if (err) throw err; 
     }); 
}); 
verwenden