NodeJS从Api(间隔)加载库中的新图像

时间:2018-04-24 13:08:43

标签: javascript node.js

我对Node.js相当新,来自PHP,它是完全不同的。我只是想知道我是否正在为我的项目采取正确的方法。

我创建了一个简单的Api来检索计算机上的本地图像列表,并将列表作为JSON返回。最终目标是将本地图像从本地图像库上载到远程服务器。

我正在创建一个简单的图片库。我可以使用以下功能查看和检索Api中的照片列表:

module.exports = {
index: (req, res) => {    
    request('http://localhost:4000/listPhotos', function (err, response, body) {
        if(err) {
            res.render('index', {response: null, error: 'Error, please try again'});
        } else if(response.statusCode != 200) {
            res.render('index', {response: null, error: 'Error, please try again'});
        } else {
            let jsonResponse = JSON.parse(body)
            if(jsonResponse == '' || jsonResponse == undefined || jsonResponse.length == 0) {
                res.render('index', {response: null, error: 'Error, please try again'});
            } else {
                console.log(jsonResponse);
                res.render('index', {photos: jsonResponse, error: null});
            }
        }
    });
}}

所以它可以工作,我可以在刷新页面时看到新图像但是如何在不使用Node.js刷新页面的情况下更新图库?我尝试在函数周围建立一个间隔但是它给了我一个错误,标题已经发送。

我的问题是,这真的是正确的方法吗?我是否必须使用Node.js代码作为我的前端画廊,或者我可以使用(例如:jQuery)与Api网址(我熟悉)。

2 个答案:

答案 0 :(得分:0)

我认为流媒体内容是您所需要的。这还取决于您如何显示图像。你如何触发这个功能?

答案 1 :(得分:0)

有方法, 两种方法都使用XHR请求,因此当用户要求页面异步时,您不需要呈现数据。

首先你可以从服务器打开一个websocket到客户端,让他知道你什么时候有新的消息,当他在websocket上获得一个新的消息时,他会查询照片,你会发给他整个列表(他将删除所有内容并放入新内容)。它是一种现代的方法

客户可以更新"他的画廊不时(他将在规定的时间间隔内发送ajax请求)