【问题标题】:Cannot Get Alexa Skill to Speak Results of MySQL Query无法获得 Alexa 技能来说出 MySQL 查询的结果
【发布时间】:2018-07-19 11:39:36
【问题描述】:

我的 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  

【问题讨论】:

  • 可能查询的结果需要parse-d和stringify-d,然后传入一个字符串作为emit的参数。
  • 我是新手。您能否提供一些示例代码来说明如何做到这一点?
  • 也许你必须在你的 lambda 响应中用 json 来构造它,比如:developer.amazon.com/alexa-skills-kit/tutorials/fact-skill-4?我的猜测是它与那里的某个地方有关,但是挖掘文档是工作的一部分。
  • 查询不只返回字符串“我的测试值”,该字符串在查询结果中,而是捆绑在 RowDataPacket 数组中。我认为需要解决的问题(这里只是猜测)是从查询结果中提取简单字符串'my test value'。也许在 stackoverflow 中搜索“string rowdatapacket”并查看类似这样的问题stackoverflow.com/questions/41392568/…
  • @spencer7593 请参阅上面的更新代码和日志。看来我已经成功提取了字符串,但是 Alexa 的响应仍然为空。

标签: javascript mysql node.js aws-lambda alexa


【解决方案1】:

查询是异步的,这意味着函数在查询返回结果之前返回,您必须使用承诺来完成请求

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2017-07-13
    • 2021-05-08
    • 1970-01-01
    相关资源
    最近更新 更多