Express JS 'this' undefiniert nach dem routing mit app.get (..)

8

Ich habe einen einfachen Node-JS-Server, der als API verwendet werden soll, ich habe ein Protokoll- und Datenbankmodul erstellt und ich habe begonnen, weitere Module hinzuzufügen, um mit verschiedenen Anfragetypen umzugehen.

Ich verwende Express.js und node-mysql

Wenn ich /v1/group besuche bekomme ich den folgenden Fehler -

%Vor%

Ich schätze also, nachdem ich eine Anfrage erhalten und group.getAll() aufgerufen habe, dass this undefiniert ist, aber ich verstehe nicht warum, gibt es eine Möglichkeit this zu setzen oder habe ich meine Anwendung falsch strukturiert?

sever.js

%Vor%

datenbank.js

%Vor%

groups.js

%Vor%     
Sam 24.03.2013, 22:32
quelle

1 Antwort

20

Sie müssen die Funktion ordnungsgemäß binden.

%Vor%

übergibt nur die getAll -Funktion als Handler, aber die Funktion selbst hat kein Konzept von this . this wird basierend auf dem Kontext, der gebunden ist, oder basierend darauf, wie die Funktion aufgerufen wird, entschieden. Dieser Blog-Post ist nützlich, um zu verstehen, wie Funktionskontext funktioniert.

%Vor%     
loganfsmyth 24.03.2013, 22:51
quelle