我想在Google的“操作”中添加列表

时间:2018-08-09 08:08:41

标签: javascript node.js actions-on-google google-assistant-sdk

我正在尝试在操作中添加一个列表,但显示出一些错误, 我无法识别。所以这是我的代码,此列表将添加到Google的Action中,可以当我尝试将此代码部署到Firebase中时使用它。请给我一些工具名称,让我可以在其中运行该代码

在Firebase中部署错误时,我会粘贴所有错误,所以如果有人可以帮助我解释该错误

26:23错误解析错误:意外的令牌;

✖1个问题(1个错误,0个警告)

npm错误!代码ELIFECYCLE

npm错误! errno 1

npm错误!功能@皮棉:eslint .

npm错误!退出状态1

npm错误!

npm错误!在functions @ lint脚本上失败。

npm错误! npm可能不是问题。上面可能还有其他日志记录输出。

npm错误!可以在以下位置找到此运行的完整日志: npm ERR! /home/vaibhav/.npm/_logs/2018-08-09T07_44_01_549Z-debug.log

错误:函数预部署错误:命令以非零退出代码1终止

  'use strict'

const {dialogflow}=require('actions-on-google');
const functions = require('firebase-functions');

const app=dialogflow({debug : true });




app.intent('what is',(conv,{menu})=>
conv.ask("this is today's menu");
conv.ask(new List({
  title : "Today's Menu",
  items : {
    [SELECTION_KEY_ONE]:{
      synonyms:[
      'show me Chinese',
      'Chinese',
    ],
    title : 'Chinese menu',
    description : 'chow(30/-), manchurian(50/-),hakka chow(80/-)',
    image : new Image({
      url : 'ibb.co/jJHNMU',
      alt : 'chinese food',
    }),
  }
  [SELECTION_KEY_TWO]:{//showing error in this line near column
    synonyms:[
    'show me Veg',
    'Veg',
  ],
  title : 'Veg menu',
  description : 'chow(30/-), manchurian(50/-),hakka chow(80/-)',
  image : new Image({
    url : 'ibb.co/jJHNMU',
    alt : 'chinese food',
  }),
},
},
}  ));
);


exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

1 个答案:

答案 0 :(得分:0)

在部署功能之前运行eslint .时,该工具将自动检查代码中与样式和功能有关的潜在问题。

看着错误26:23 error Parsing error: Unexpected token ;,我看了看代码中的第26行,它似乎并没有用到一个指标:

image : new Image({
  url : 'ibb.co/jJHNMU',
  alt : 'chinese food',
}),

但是我确实在该节周围发现了一些可能导致此错误,甚至可能是错误的问题。

现在,列表中的每个项目都用[SELECTION_KEY_ONE]表示。这意味着该对象将使用变量SELECTION_KEY_ONE中的值作为键。该变量不存在,应引起错误。为了解决这个问题,您应该:

  • 为每个键创建一个新变量:const SELECTION_KEY_ONE = 'one'
  • 对每个键的值进行硬编码:items: { 'one': { ...

首选第一个选项,因为您将能够将常量分离到逻辑位置并在所有地方重用它们。

另一个问题似乎是您的列表对象似乎提前关闭,从而导致潜在的语法错误。

items : {
  [SELECTION_KEY_ONE]:{
    synonyms:[
      'show me Chinese',
      'Chinese',
    ],
    title : 'Chinese menu',
    description : 'chow(30/-), manchurian(50/-),hakka chow(80/-)',
    image : new Image({
      url : 'ibb.co/jJHNMU',
      alt : 'chinese food',
    }),
  }
  [SELECTION_KEY_TWO]:{//showing error in this line near column
  // ...

将JSON对象设置为一系列键值对,以逗号分隔。然后关闭。查看此代码段,似乎您在}之后和[SELECTION_KEY_TWO]之前没有逗号就关闭了第一项,从而导致错误。

顺便说一句,使用标识和间距可能更好地显示执行的层次结构。这样可以使您自己和他人的代码更具可读性,并可以更快地识别潜在错误。