2017-02-07 2 views
0

Der Versuch, rufen Sie einen restapi mit NodeJS ich diesen FehlerTypeerror: Die Methode kann nicht von undefinierten

TypeError: Cannot call method 'getCategories' of undefined 

Meine Projektstruktur ist wie diese

Modelle

erhalten zu bauen - dbhandler.js

node_modules

package.json

app.js

dbconnection.js

Mein dbhandler Code ist hier

var db = require('../dbconnection'); 
var getData = { 
getCategories : function() { 
    var sql = "SELECT * FROM categories" 
    db.connection.connect(); 
    db.connection.query(sql,function(error, results, fields){ 
     if (!error){ 
      console.log('The solution is: ', results); 
      console.log('The solution fields is: ', fields); 
     } else{ 
      console.log('Error while performing Query.'); 
     } 
    }); 
}}; 
module.exports = getData; 

Und mein app.js Code ist hier:

var dbhandler = require('./models/dbhandler') 
var router = express.Router(); 
router.get('/', function(req, res) { 
dbhandler.getData.getCategories(); 
res.json({ message: 'hooray! welcome to our api!' }); 
}); 
+0

und wo nennst du deine 'getData' ??? Was ist eigentlich die Zeile, in der der Fehler auftritt? – smnbbrv

+0

Entschuldigung, ich habe meinen Beitrag aktualisiert Fehler 'TypeError: Kann Methode' getCategories 'von undefined nicht' Aufruf von dbhandler.getData.getCategories(); – user3528954

Antwort

1

Es sollte dbhandler sein .getCategories(), während Sie dbhandler als Objekt durch diese var dbhandler = require('./models/dbhandler')

importieren
+0

Aber ich exportiere hier getData für getcategories Objekte. – user3528954

+0

Sie haben '' '' getData''' nicht exportiert. Stattdessen weisen Sie die '' 'getData'''-Variable, die ein Objekt ist,' 'module.exports''' zu. Wenn Sie es also benötigen, sollte es ein Objekt sein. '' 'getCategories''' ist in diesem Fall der Schlüssel des Objekts, das Sie exportiert haben. – quanfoo

Verwandte Themen