Замена запроса хранилища данных с переменной в JavaScript - PullRequest
0 голосов
/ 21 октября 2019

Я пишу бота Dialogflow, где вы даете ему книгу или автора, и в ответе будет текстовый отрывок. Все данные хранятся в хранилище данных. У меня это успешно работает с запросом, специфичным для определенной книги, но я хочу написать запрос хранилища данных, в котором входные данные от пользователя (имя книги) являются переменной в запросе, поэтому у меня может быть только один запрос.

Я пытался поместить переменную в строку запроса, но он не распознает ее как переменную и вместо этого запрашивает переменную, а не значение переменной.

const query1 = datastore.createQuery('QuoteTable').filter('Book', '=', 'Harry Potter');

const book = conv.parameters[BOOK_ENTITY].toLowerCase();
 if (book !== null){ 
     return datastore.runQuery(query1).then(results => {
        conv.ask(results[0][0].Quote);
    }); 

Что яхочу заменить Гарри Поттера книгой. Как пример (я знаю, что это не работает, но это идея):

const query1 = datastore.createQuery('QuoteTable').filter('Book', '=', '$book');

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете попробовать следующее: Небольшая корректировка исходного кода, чтобы получить переменную book перед установкой query1

book = conv.parameters[BOOK_ENTITY].toLowerCase();

const query1 = datastore.createQuery('QuoteTable').filter('Book', '=', book);


 if (book !== null){ 
     return datastore.runQuery(query1).then(results => {
        conv.ask(results[0][0].Quote);
    }); 
...