wit.ai:我的runActions函数中的sessionid未定义

时间:2016-09-27 15:26:44

标签: node.js wit.ai

我正在使用node.js后端用wit.ai编写我的第一个应用程序。我发现这里的一些帖子类似于我的问题,但不是真的答案: 我使用socket.io与我的节点脚本进行通信。 我的节点的两个相关部分是:

io.sockets.on('connection', function (socket) {
    socket.on('message',
        function(data)  {
            var json = JSON.parse(data);
            var sid = json['sessionid'];
            console.log("Received on sid " + sid);
            if (_sessions[sid] == undefined)    {
                        _sessions[sid] = {};
                        _sessions[sid].context = {};
            }
            _sessions[sid].socket = socket;
            client.runActions(sid, json['text'], _sessions[sid].context, 30)
            .then((context) =>  {
                    _sessions[sid].context = context;
                }
            )
            .catch((err) =>
                {
                    console.error('Oops! Got an error from Wit: ', err.stack || err);
                }
            );
        }
    );
    }  
);

======

const actions = {
  send(request, response) {
    const {sessionId, context, entities} = request;
    const {text, quickreplies} = response;
    return new Promise(function(resolve, reject) {
        var session = _sessions[sessionId];

        console.log("-------------------------------");
        console.dir(context);
        console.log("-------------------------------");


        session.socket.emit("message", JSON.stringify(response));
      return resolve();
    });
  },
  gettaxi ({sessionid, context, text, entities}) {
      return new Promise(function(resolve, reject) {
            console.log(`Session ${sessionid} received ${text}`);
            var quand = firstEntityValue(entities, "quand");
            if (!quand && context['quand'] != undefined) quand = context['quand'];
            var depart = firstEntityValue(entities, "depart");
            var arrivee = firstEntityValue(entities, "arrivee");

            if (depart) {
                console.log("Found depart");
                context.depart = depart;
                delete context.missing_depart;
            }
            else    {
                context.missing_depart = true;
            }

            if (arrivee)    {
                console.log("Found arrivee");
                context.arrivee = arrivee;
                delete context.missing_arrivee;
            }
            else    {
                context.missing_arrivee = true;
            }

            console.dir(context);

            if (quand)  {
                console.log("Found quand");
                context.quand = quand;
                delete context.missing_quand;
            }
            else    {
                context.missing_quand = true;
            }
            return resolve(context);
        }
    );
  },

};

除了我的gettaxi收到一个未定义的sessionid之外,所有工作都很好。 接收正确的sessionid的send函数不是这种情况。

我做错了什么?

0 个答案:

没有答案