Alexa Lambda JS如何从外部.js文件访问数组数据

时间:2019-02-03 23:59:17

标签: javascript alexa-skills-kit

我正在使用JS代码在lambda中构建alexa技能。 我有 2个文件。一个具有用于alexa技能的常规代码,第二个文件具有一个数组,该数组包含我触发Inttent时需要的数据。

¿我必须使用什么代码才能使alexa从第二个文件中读取数组数据?

文件1

let CountryInfoSlot = resolveCanonical(this.event.request.intent.slots.CountryInfo);

console.log (CountryInfoSlot);

CountryInfoSlot = CountryInfoSlot.toLowerCase();

if (CountryInfoSlot == 'France'){

var FranceInfo = require ('/FranceInfo.js');

var N = FranceInfo.length;

var index = Math.round(Math.random()*(N-1));

var answer = FranceInfo[index];

this.response.speak(answer);

this.emit(':responseReady);

}

文件2

var FranceInfo = [

'The language spoken in France is french',

'Paris is the capital of France',

];

2 个答案:

答案 0 :(得分:0)

您可以使用fs进行读取,并将值作为数组存储在第二个文件中,然后在第一个文件中进行解析。

OR

由于您在第一个文件中使用了require,因此请在第二个文件的末尾使用module.exports = FranceInfo,以便可以将其加载到第一个文件中

答案 1 :(得分:0)

您必须更改信息文件才能导出数据。更改文件2以这样导出您要访问的变量:

var FranceInfo = [

'The language spoken in France is french',

'Paris is the capital of France',

];

module.exports.data = FranceInfo;

然后您可以在第一个文件中要求该变量,如下所示:

const FranceInfoData = require('./FranceInfo');

var FranceInfo = FranceInfoData.data;

那么您的FranceInfo变量将等于外部文件中的数组。

这不是唯一的方法,但这是最简单的方法之一。