公开 return 值

Expose return value

我正在处理这段代码。为了提供上下文,我使用事件源来流式传输服务器发送的事件。收到 data/response 后,我想将其传递到我的模板(车把)视图中。下面的代码是一个 GET 请求,我试图在其中显示从 SSEvents.addEventListener.

返回的数据
method: 'GET',
path: '/students',
config: {
handler: (request, reply) => {
  SSEvents.addEventListener('score', function(e) {
    const data = JSON.parse(e.data);
    }, false);
      reply.view('students', {result: data});
   },
    description: "Endpoint lists all users that have received at least one test score.",
    tags: ['api']
   }
 }

此代码的问题是常量 "data" 在事件侦听器范围之外不可用。我需要找到一种方法来公开常量,以便我可以在 reply.view('students', {result: data});

中使用它

注意:我尝试在事件侦听器中添加 "reply.view('students', {result: data});",但它抛出以下错误:回复接口被调用两次。

如有任何帮助,我们将不胜感激。

--谢谢!

它应该是这样工作的。您的事件源需要多长时间才能产生答案?您是否调用了两次回复方法?这只是一个调用。

handler: (request, reply) => {
        SSEvents.addEventListener('score', function(e) {
            const data = JSON.parse(e.data);
            return reply.view('students', {
                result: data
            });
        }, false);
    },
    description: "Endpoint lists all users that have received at least one test score.",
    tags: ['api']
}