Las skills necesitan usar datos que se guardan en el back-end. Inicialmente, se puede usar una variable en la funcion node.js, pero enseguida surgirán otras necesidades. Yo uso AWS como back-end y DynamoDB como base de datos.

Algunos ejemplos:

  • Query para recuperar un registro de una tabla con los campos: lang, word
function getNextWord( lang, callback )
{
    var AWS = require("aws-sdk");
    var docClient = new AWS.DynamoDB.DocumentClient();
    var params = {
        TableName : TABLE_NAME, // Nombre de la tabla con los datos
        KeyConditionExpression = "lang = :lang";
        ExpressionAttributeValues = { ":lang": lang };
    };

docClient.query( params, function(err, data) {
        if (err) {
            console.log("JSON.stringify(err, null, 2));
            callback( err );
        } else {
            console.log( data.Items.length + " items retrieved" );
            callback( data );
        }
}
  • Insertar un registro en la tabla anterior. La estructura JSON de DynamoDB requiere que se indique el tipo del campo además del nombre: “S”-> string
var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB();
var params = {
    Item: { "lang": { S: lang }, "word": { S: word } },
    TableName: TABLE_NAME // Nombre de la table
};
dynamodb.putItem( params, function(err, data) {
    if (err) {
        console.log(err, err.stack);
    }
    else {
        console.log( "putItem ok: " + JSON.stringify(data,2,null) );
    }
}