2017-10-17 24 views
1

私は、MySQLバックエンドにデータを書き込んでいるNode.jsアプリケーションを持っています。 1つのフィールドはストリング化する配列です。ワークベンチでは、データベース内にあるデータが正しいことがわかります。しかし、私がそれを取得するとき、私はそれを解析しようとするとエラーが発生しています。MySQLから返されたJSONを解析できません

"1位のJSONでO予期しないトークン"

Iは結果を記録した場合には、[Object Object]として現れます。

私がオンラインで読んだことは、すでにJSオブジェクトであり、解析する必要はないということです。しかし、データへのアクセス方法については何も見つかりません。

process: function (bot, msg, suffix) { 

    var ftcmds = suffix.split(" ", 1); 
    var ftName = ftcmds[0]; 
    var ftArray; 
    var selectSQL = "SELECT FireTeam FROM fireteam WHERE Name = '" + ftName + "'"; 
    var updateSQL = "UPDATE fireteam SET FireTeam = '" + ftArray + "'WHERE Name = '" + ftName + "'"; 

    mysqlcon.query(selectSQL, function (err, result) { 
     console.log("Result |" + result); 
     console.log("Error |" + err); 
     if (err) { 
      console.log("Caught Error " + err + " " + msg.author); 
     } 
     else { 
      console.log("Recovered result " + result); 

      ftArray = result; 
      console.log("Attempting to update array"); 

      ftArray.push(msg.author.id); 
      console.log("updated array " + ftArray); 

      var jsonArray = JSON.stringify(ftArray); 
      mysqlcon.query(updateSQL, function (err, result) { 
       console.log("Result |" + result); 
       console.log("Error |" + err); 

       if (err.toString().indexOf(dupErr) != -1) { 
        msg.author.send("Could not find that fireteam"); 
        console.log("Error: Did not locate the requested name " + msg.author) 
       } else if (err) { 
        console.log("Caught Error " + err + " " + msg.author); 
       } 
       else { 
        msg.author.send("You have joined Fireteam " + name + ". I will setup a group chat on " + date + " if your team fills up."); 
       } 
      }) 
     } 
    }); 
} 

答えて

1

結果は、フィールド名とタイトルを持っているかのように、あなたがちょうどそれらにアクセスすることができますので、あなたはただ、それをオブジェクトとしてアクセスできるようにする必要があります:それは何のフィールドが何を持っていない場合

var name = result.name 
var title = result.title 
+0

?その単純な配列の文字列、私はそれを間違って使用することができたと思います。 –

+0

次に、文字列に配列としてアクセスできます(例:result [0]、result [1]など) –

関連する問題