Mysql
 sql >> база данни >  >> RDS >> Mysql

Запитване на MySQL база данни от NodeJS AWS Lambda функция

Проблемът беше, че трябваше да сложа своя context.succeed в моите обратни повиквания. Много благодаря на sqlbot, тъй като неговите разговори за обратни извиквания ме накараха да проуча къде всъщност нещата приключват изпълнението си.

Така че очевидно, когато използвате AWS Lambda, ако „контекстът“ приключи, преди вашите обратни повиквания да бъдат извикани, вие не получавате обратните си повиквания. Така че, въпреки че бях поставил всичките си обратни извиквания така:свържете -> заявка -> край, първото обратно извикване на веригата от connect никога не се извиква, защото "context.succeed" се извиква веднага след това, което прекратява изпълнението.

Ето моя код към момента (получаването на правилна заявка се случва сега):

var mysql = require('mysql');
var connection = mysql.createConnection({
    ...
});

exports.handler = (event, context) => {
    try {

        if (event.session.new) {
            // New Session
            console.log("NEW SESSION");
        }


        switch (event.request.type) {

            case "LaunchRequest":
                // Launch Request
                console.log(`LAUNCH REQUEST`);
                context.succeed(
                    generateResponse({},
                        buildSpeechletResponse("Welcome to an Alexa Skill, this is running on a deployed lamda function", true)
                    )
                );
                break;

            case "IntentRequest":
                // Intent Request
                console.log(`Intent Request`);
                console.log('Then run MySQL code:');
                connection.connect(function(err) {
                    console.log('Inside connection.connect() callback');
                    if (!err) {
                        console.log("Database is connected ... ");
                        connection.query("INSERT INTO Users (user_id) VALUES ('TESTNAME')",
                            function(err, result) {
                                console.log("Inside connection.query() callback")
                                if (!err) {
                                    console.log("Query Successful! Ending Connection.");
                                    connection.end();
                                } else {
                                    console.log("Query error!");
                                }
                            });
                    } else {
                        console.log("Error connecting database ..." + err.message);
                    }
                    context.succeed(
                        generateResponse({},
                            buildSpeechletResponse("Welcome to the incredible intelligent MySQLable Alexa!", true)
                        )
                    );
                });

                break;

            case "SessionEndedRequest":
                // Session Ended Request
                console.log(`SESSION ENDED REQUEST`);
                break;

            default:
                context.fail(`INVALID REQUEST TYPE: ${event.request.type}`);

        }

    } catch (error) {
        context.fail(`Exceptiodn: ${error}`)
    }

};

//Helpers
buildSpeechletResponse = (outputText, shouldEndSession) => {

    return {
        outputSpeech: {
            type: "PlainText",
            text: outputText
        },
        shouldEndSession: shouldEndSession
    };
};

generateResponse = (sessionAttributes, speechletResponse) => {
    return {
        version: "1.0",
        sessionAttributes: sessionAttributes,
        response: speechletResponse
    };
};



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Бавна заявка след надстройка на mysql от 5.5 на 5.6

  2. Как да актуализирате автоматично данни в базата данни в PHP

  3. изберете колона като true / false, ако идентификаторът съществува в друга таблица

  4. Как да наложа уникално ограничение в MySQL?

  5. Вмъкване в същата таблица, задействане на mysql