#node.js #express #ms-access #odbc
#javascript #mysql #node.js #discord.js
Вопрос:
Пытаюсь запросить мою базу данных MySQL, но не могу, потому что получаю TypeError: connection.query is not a function
сообщение об ошибке. У кого-нибудь есть идеи, почему? Я понятия не имею, почему это происходит.
database.js
const fs = require('fs'); // node.js file system module
require('dotenv').config(); // stores tokens, keys, passwords and other info
const Discord = require('discord.js'); // links discord.js api to file
const database = require('./database.js');
const client = new Discord.Client(); // creates bot user
let connection;
(async () => {
connection = await require('./database.js');
await client.login(process.env.TOKEN); // bot goes from offline to online
})();
client.once('ready', () => console.info(`[${date.toLocaleString()}] INFO | Ready, logged in as ${client.user.tag} (${client.user.id})n------------------------`));
client.on('guildCreate', async guild => {
try {
await connection.query(`INSERT INTO guildInfo VALUES('${guild.id}', '${guild.ownerID}')`);
await connection.query(`INSERT INTO guildConfig (guildID) VALUES('${guild.id}')`);
} catch(err) {
console.error(err);
}
});
database.js
require('dotenv').config();
const mysql = require('mysql2/promise');
date = new Date();
mysql.createConnection({
user: process.env.USER,
password: process.env.PASSWORD,
database: process.env.DATABASE
}).then(connection => console.info(`[${date.toLocaleString()}] INFO | Waiting for input/changes to coden------------------------`)).catch(err => console.error(err));
Ошибка
TypeError: connection.query is not a function
at Client.<anonymous> (C:UsersPatrick LawrenceDesktopSynthindex.js:43:20)
at Client.emit (events.js:315:20)
at Object.module.exports [as GUILD_CREATE] (C:UsersPatrick LawrenceDesktopSynthnode_modulesdiscord.jssrcclientwebsockethandlersGUILD_CREATE.js:33:14)
at WebSocketManager.handlePacket (C:UsersPatrick LawrenceDesktopSynthnode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:UsersPatrick LawrenceDesktopSynthnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:UsersPatrick LawrenceDesktopSynthnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:301:10)
at WebSocket.onMessage (C:UsersPatrick LawrenceDesktopSynthnode_moduleswslibevent-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (C:UsersPatrick LawrenceDesktopSynthnode_moduleswslibwebsocket.js:797:20)
at Receiver.emit (events.js:315:20)
Комментарии:
1.
database.js
похоже, ничего не экспортирует.2. @aioros спасибо! как мне его экспортировать?
Ответ №1:
Просто вы не экспортируете соединение database.js
.
После создания соединения присвойте его переменной like const connection
и введите внизу файла module.exports = connection
.