Verweisen Sie auf die von Ihnen verlinkte Dokumentationsseite im Abschnitt "Escape-Abfrage-IDs ", sollten Sie dazu in der Lage sein:
mysql.query('SELECT * FROM ?? where name = ?', [this.table, this.votesTable]
Die meisten SQL-Frameworks erlauben keine Verwendung von Parametern für irgendetwas anderes als einzelne Werte . Dh nicht Tabellenkennungen, Spaltenkennungen, Wertelisten oder SQL-Schlüsselwörter. Die mysqljs-Bibliothek ist insofern ungewöhnlich, als sie das Zitieren von Bezeichnern und Schlüssel/Wert-Paaren unterstützt.
Zu Ihrem Kommentar:
Der ??
Platzhalter ist für Bezeichner. Bezeichner müssen anders als Werte angegeben werden. In MySQL wird ein String-Wert wie 'string'
in Anführungszeichen gesetzt aber ein Bezeichner wird mit Backticks in Anführungszeichen gesetzt.
SELECT * FROM `mytable` where name = 'myname'
Die mysqljs-Klasse verwendet den ??
als spezieller Platzhalter für einen Bezeichner, damit Sie der Klasse mitteilen können, dass sie mit Backticks in Anführungszeichen gesetzt werden muss.