首页 > 解决方案 > 使用 mysql 和 node.js 的自定义前缀

问题描述

var prefix = `SELECT S_PREFIX FROM ServerConfigs WHERE S_ID = ${message.guild.id}`;  
connection.query(prefix, function (err, result, fields) {  
if (err) return console.log(err);  
let res = JSON.parse(JSON.stringify(result[0].S_PREFIX));
const serverPREFIX = res;

它可以工作,但有时它会给我写一个错误来控制台。错误如下所示: TypeError: Cannot read property 'S_PREFIX' of undefined

有人可以帮我吗?刚开始学习MYSQL。

标签: javascriptmysqlnode.jsdiscord.js

解决方案


result[0]is undefined,这意味着您的 SQL 查询没有返回任何结果,这意味着没有带有S_IDbeing的行message.guild.id。只需检查结果数组是否为空。

var prefix = `SELECT S_PREFIX FROM ServerConfigs WHERE S_ID = ${message.guild.id}`;
connection.query(prefix, function (err, result, fields) {
  if (err) return console.log(err);
  if (result.length < 1) {
    console.log(`No results for S_ID = ${message.guild.id}`)
    return;
  }
  let res = JSON.parse(JSON.stringify(result[0].S_PREFIX));
  const serverPREFIX = res;

推荐阅读