无法获得Alexa技能来说MySQL查询的结果



我的Alexa技能运行了在Lambda中托管的Node.js。我通过MySQL模块成功将代码连接到AWS MySQL数据库。但是,我无法让Alexa讲我的查询结果。她只是说:"要求技能的回应有问题。"

我的控制台日志反映了我的数据库字段的值,因此我知道该连接已成功建立。怎么了?

connection.query('SELECT versetext FROM myverses WHERE id = 3', 
function (error, results, fields) {
console.log(JSON.stringify(results[0].versetext));
var saythis = JSON.stringify(results[0].versetext);
connection.end();
  this.emit(':tell', saythis);
});

这是我的控制台日志:

 Response:
null
Request ID:
"c05ef0f2-0d37-11e8-94ae-e12579c1d8d5"
Function Logs:
START RequestId: c05ef0f2-0d37-11e8-94ae-e12579c1d8d5 Version: $LATEST
2018-02-09T01:22:56.149Z    c05ef0f2-0d37-11e8-94ae-e12579c1d8d5    "Sample value."
END RequestId: c05ef0f2-0d37-11e8-94ae-e12579c1d8d5
REPORT RequestId: c05ef0f2-0d37-11e8-94ae-e12579c1d8d5  Duration: 2026.02 ms    Billed Duration: 2100 ms    Memory Size: 128 MB Max Memory Used: 45 MB  

查询是异步

var prom = new Promise((success,reject) => {
connection.query('...',  (errr, result, fields) => {
   speechText = result[0].versetext;
   connection.end();
   var ret = handlerInput.responseBuilder
   .speak(speechText)
   .reprompt(speechText)
   .getResponse();
   success(ret);
  });
});
return prom;

最新更新