JavaScript数据库连接 - Amazon Echo Alexa

时间:2017-02-06 11:35:25

标签: javascript mysql amazon-web-services

我不知道你们是否知道Amazon Echo是什么但很快:

Amazon Echo是语言助手。

然而:

我正在为我的Echo编写一个技能(插件)以获取一些数据库信息。

除了数据库查询之外的所有内容都能正常工作。

如果我第一次问Echo(约30分钟后),我会得到答案:无法读取数据库。

如果我现在问同样的问题,在2分钟的问题之后,我会得到正确的答案。

但如果我现在要求另一个项目,则需要2分钟,直到Echo知道它。

整体如何运作以及我是如何做到的(使用技能等),你可以在这里找到一个教程:https://medium.com/clay-labs/code-your-first-alexa-skill-in-30-ish-seconds-using-clay-ready-go-8293ee1761ac#.r52zrdboq

我的代码:

    var Alexa = require('clay-alexa-sdk');
var mysql = require('mysql');

var connection = mysql.createConnection({
    host: 'xx.xx.xx.xx',
    user: 'xxxx',
    password: 'xxxxxxxxxxxx',
    database: 'items',
    timeout: 8060000
});
connection.connect();

var id01 = '1';
var id02 = '2';
var id03 = '3';

var ItemAA = "Could not be read the database ";
var ItemAB = "Could not be read the database ";
var ItemAC = "Could not be read the database ";

connection.query('select * from items where id =' + id01, function(err, result) {
    ItemAA = JSON.parse(JSON.stringify(result))[0].price;
    });
connection.query('select * from items where id =' + id02, function(err, result) {
    ItemAB = JSON.parse(JSON.stringify(result))[0].price;
    });
connection.query('select * from items where id =' + id03, function(err, result) {
    ItemAC = JSON.parse(JSON.stringify(result))[0].price;
    });

exports.handler = function(event, context, callback) {
  console.log(event);
  var handlers = {
    'ItemAA': function(){
        this.emit(':tell', "Item Name ONE " + ItemAA);
        },
    'ItemAB': function(){
        this.emit(':tell', "Item Name TWO " + ItemAB);
        },
    'ItemAC': function(){
        this.emit(':tell', "Item Name THREE " + ItemAC);
        },

    'LaunchRequest': function(){
      this.emit(':tell', "Hello and welcome.");
    },

    'Unhandled': function(){
      this.emit(':tell', "I dont know, what you searching for.");
    }
  };

var alexa = Alexa.handler(JSON.parse(event.body), context);

alexa.registerHandlers(handlers);
alexa.execute();
}

我做错了什么?

请帮助我。

0 个答案:

没有答案