在 JavaScript 中将数据存储查询替换为变量



>我正在编写一个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');

您可以尝试以下操作: 只需对原始代码进行微小调整,即可在设置query1之前获取变量book

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);
}); 

最新更新