我想为尝试的我的不和谐机器人进行排名,但给出错误“无法读取未定义的属性'map'”



var dados = require("../create-table");
const mysql = require('mysql');
const sequelize = require('sequelize');
const connection = mysql.createConnection({
  host     : 'myhost',
  port     : '3306',
  user     : 'myuser
  password : 'mypassword',
  database : 'mydatabase',
  charset : 'utf8mb4'
});

exports.run = (client, message, args)  => {
    connection.query(`SELECT * FROM guildn WHERE id = '${message.guild.id}'`, function (err, result) {
        if (err) {
            return console.log('Error1');
        }
        if (result.length){
            connection.query(`SELECT * FROM level WHERE guild = '${message.guild.id}'`, function (err, result2) {
                if(err) {
                    return console.log('Error1');
                }
                var sla = result2.xp.map(function(a){

                })
                sla.sort(function(a, b) {
                    return a - b;
                });
                console.log(sla)
            });
        }
    });
}




我曾用Google翻译器发表这篇文章,所以如果翻译中有任何错误,对不起

最佳答案

您收到的错误消息


  “无法读取未定义的属性'map'”


表示在此功能中

var sla = result2.xp.map(function(a){})

result2.xp未定义。

这通常意味着它不存在,mysql无法找到它,但是基于您的代码,也许您没有正确地insertcreate table?它似乎缺少result2.xp值,这导致了问题。您应该检查数据库及其错误值所在的值。

编辑:基于result2是数组的注释。您应该遍历数组,获取xp值并将它们存储在另一个数组中,然后对其进行排序。

关于javascript - 使用mysql对discord.js进行排名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48312766/

10-09 23:39