Я хочу добавить список в Action на Google

Я пытаюсь добавить список в мои действия, но он показывает какую-то ошибку, я не смог ее идентифицировать. Итак, вот мой код. Этот список будет добавлен в Action на Google. Может, когда я пытаюсь развернуть этот код в firebase, он не принимает его. Пожалуйста, дайте мне название инструмента, где я могу запустить этот код

Ошибка при развертывании в Firebase. Я вставляю все ошибки, так что если кто-нибудь может помочь мне понять, как интерпретировать ошибку

26:23 ошибка Ошибка разбора: неожиданный токен;

Problem 1 проблема (1 ошибка, 0 предупреждений)

нпм ERR! код ELIFECYCLE

нпм ERR! Errno 1

нпм ERR! functions@ lint: eslint .

нпм ERR! Статус выхода 1

нпм ERR!

нпм ERR! Сбой в скрипте functions @ lint.

нпм ERR! Это, вероятно, не проблема с npm. Вероятно, есть дополнительные выходные данные регистрации.

нпм ERR! Полный журнал этого прогона можно найти в: 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 ответ

При беге 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], вызывая ошибку.

Кроме того, может быть полезно использовать идентификаторы и интервалы, чтобы лучше показать иерархию выполнения. Это может сделать ваш код более читабельным для вас и других, и может позволить вам быстрее выявлять потенциальные ошибки.

Другие вопросы по тегам