首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js -将会话变量传递给Server函数调用

Node.js -将会话变量传递给Server函数调用
EN

Stack Overflow用户
提问于 2018-05-03 22:36:40
回答 1查看 149关注 0票数 0

在MS Teams中,我有一个工作对话框代码来问一系列问题,并在这样的会话中将格式化的响应返回给用户:

代码语言:javascript
复制
session.send(`Details: <br/>Question1: ${session.dialogData.Question1}   <br/>Question2: ${session.dialogData.Question2} <br/>Question3: ${session.dialogData.Question3}`);

因此,我知道我需要的值在会话变量中。现在,我想将会话变量传递给SQL函数(executeStatement):

代码语言:javascript
复制
    var session_username = session.dialogData.username
    var session_yesterday = session.dialogData.yesterday
    var session_today = session.dialogData.today
    var session_obstacles = session.dialogData.obstacles

    executeStatement(session_username, session_yesterday, session_today, session_obstacles)

我可以传递字符串,这个函数可以正常工作。但是,当我试图传递像上面这样的会话变量或者仅仅传递session.dialogData.yesterday时,所有的代码都运行良好--没有抛出错误--但是会话变量没有插入,而是返回了0行。

传递会话变量的正确方法是什么?谷歌在这方面并不友善。:)

谢谢你提前..。

编辑:

所以我睡不着,有个(奇怪的)主意。在将值赋值给变量时使用session.send,如下所示:

代码语言:javascript
复制
session_username = session.send(`${session.dialogData.username}`)

代码语言:javascript
复制
session_username = session.send(session.dialogData.username)

它写入数据库,但它是一个对象对象值。那么我怎样才能得到实际价值呢?Hmmm...Still查找

编辑2:

为了获得我尝试过的对象值:

代码语言:javascript
复制
session_yesterday = session.dialogData.yesterday.text()

代码语言:javascript
复制
session_yesterday = session.dialogData.yesterday.value()

对于第一次尝试,.text()收到了以下错误:

代码语言:javascript
复制
TypeError: Cannot read property 'text' of undefined
at Array.<anonymous> (C:\Developer\dailyStatus\index.js:96:56)
at C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:67:39
at next (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:92:21)
at WaterfallDialog.beforeStep (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:99:9)

at WaterfallDialog.doStep (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:61:14)
at WaterfallDialog.dialogResumed (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\WaterfallDialog.js:46:14)
at Session.endDialogWithResult (C:\Developer\dailyStatus\node_modules\botbuilder\lib\Session.js:358:28)
at PromptText.Prompt.invokeIntent (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\Prompt.js:331:21)
at PromptText.Prompt.replyReceived (C:\Developer\dailyStatus\node_modules\botbuilder\lib\dialogs\Prompt.js:147:18)
at Session.routeToActiveDialog (C:\Developer\dailyStatus\node_modules\botbuilder\lib\Session.js:525:24)
/ - ERROR: Cannot read property 'text' of undefined
/ - Session.endConversation()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-04 13:56:45

我固执地试图访问变量,因为我知道信息就在那里。

我测试了回到对话框results.response中,如下所示,它起了作用:

代码语言:javascript
复制
session.dialogData.yesterday = session_yesterday = results.response;

老实说,对我来说,我不能直接访问变量,这对我来说还是有点奇怪的,但我想,哦,好吧,我从中吸取了教训。

谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50164710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档