在运行函数时阻塞节点Js中的输入

问题描述 投票:0回答:1

我正在从节点js构建下载服务器。假设我有一个异步函数downloader(url),它接受输入并下载内容。现在,我想阻止来自express的输入,直到函数运行为止。

javascript node.js mongodb express
1个回答
0
投票

您不应该尝试阻止服务器,而应采取某种方式来检查尝试访问下载路由的用户是否还有另一个待处理的下载任务。

您可以构建在处理请求之前调用的中间件,然后检查:-

  • 如果用户有待处理的下载任务,请向用户返回一条好消息
  • 如果用户没有待处理任务,则允许访问下载路径并记录该用户有待处理任务

下载完成后,请记住将用户的待处理任务重置为false,或将其删除。

此外,请记住添加过期机制,如果任务失败,则应清除该用户的待处理任务。

用户标识:

  • 如果用户通过了身份验证,只需将其与登录会话ID /令牌关联
  • 如果用户未通过身份验证,请尝试使用其IP地址或某种cookie

希望它起作用!

© www.soinside.com 2019 - 2024. All rights reserved.