Я хочу добавить список в 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]
, вызывая ошибку.
Кроме того, может быть полезно использовать идентификаторы и интервалы, чтобы лучше показать иерархию выполнения. Это может сделать ваш код более читабельным для вас и других, и может позволить вам быстрее выявлять потенциальные ошибки.