【问题标题】:Notifying UI on the "on data" event of Node api method在 Node api 方法的“on data”事件上通知 UI
【发布时间】:2018-01-31 16:03:51
【问题描述】:

我想知道是否有办法从节点api方法的“on data”事件中通知UI前端JS文件。 这是我目前在前端 JS 上的代码

var filter = {
    user: username,
    time: time
}

$.get('/getZipFolder/'+JSON.stringify(filter),function(data){
    console.log(data.filename);
});

在 Node.js 方面,这是代码:

exports.getZipFolder= function(req, res, next) {
    var request = JSON.parse(req.params.obj);
    var call = myChatClient.getZipFolderName(request);
    call.on('data', function(bitem) {
        var zipFileName = 'myFolder.zip'
        res.json({"filename":zipFileName});
    });
};

回应:

res.json({"文件名":zipFileName});

永远不会到达 UI 前端 JS 并且永远不会调用此语句:

console.log(data.filename);

有没有办法在节点api方法的on data事件上以这种方式通知UI?

注意:on data事件上将res.json({"filename":zipFileName});发送到UI时,Node JS进程并没有结束,而是在后端继续进行其他处理工作,并且UI 等不及了。

【问题讨论】:

    标签: javascript html node.js express routes


    【解决方案1】:

    我认为问题可能发生在处理 myChatClient.getZipFolderName 期间。也许它无法触发回调,这意味着服务器永远不会响应 UI。在这种情况下,是否将return 添加到res 并不重要。

    【讨论】:

    • 它确实在on data 上调用回调函数并创建ZIP 文件夹。但是,当我尝试将 zip 文件夹文件名发送回 UI res.json({"filename":zipFileName}); 时,它并没有这样做。是的,此服务:myChatClient.getZipFolderName 正在进行中,并且在节点方法的 on data 事件中将 zip 文件夹文件名发送到 UI 时不会停止
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 2013-09-21
    相关资源
    最近更新 更多