首页 > 解决方案 > 我想在 Action on Google 中添加列表

问题描述

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

我在 Firebase 中部署它时出错。我正在粘贴所有错误,所以如果有人可以帮助我了解如何解释错误

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

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

npm 错误!代码生命周期

npm 错误!错误号 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);

标签: javascriptnode.jsactions-on-googlegoogle-assistant-sdk

解决方案


在部署函数之前运行时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 对象设置为一系列键值对,以逗号分隔。然后它关闭。查看此代码段,您似乎关闭了第一个项目,而在 the}和 before之后没有逗号[SELECTION_KEY_TWO],从而导致错误。

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


推荐阅读