2017-10-17 172 views
1

我有一個將數據寫入MySQL後端的Node.js應用程序。一個字段是我串化的數組。我可以在工作臺中看到數據庫中的數據是正確的。但是,當我檢索它時,我在嘗試解析它時遇到錯誤。無法解析從MySQL返回的JSON

「意外令牌○在JSON位置1處的」

如果我登錄結果它顯示爲[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]等) –