我是Node的新手,我需要快速帮助。
我有一个node.js应用程序通过GET请求从另一个应用程序接收数据,如下所示:GET /api/users?data=26'
- 每30个sesonds。我的节点应用程序代码如下所示:
var express = require('express');
var app = express();
var port = process.env.PORT || 8080
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
var router = express.Router();
router.get('/api/users', function(req, res) {
var query = req.param('data');
//I need to pass data to the view without refreshing browser
});
app.use(router);
app.listen(port)
我需要将数据传递给视图(我有一个模板home.jade
),而无需用户刷新浏览器。因为每30秒一次请求,用户将看到数据每30秒更改一次而不刷新浏览器。我该如何做到这一点?提前谢谢。
答案 0 :(得分:2)
你可以使用套接字,你不需要成为专家来实现它只是试一试
var hands = [ [2, 3, 4, 5, 7], [2, 3, 5, 9, 8], [2, 3, 4, 5, 9] ];
var values = [];
function bestHand(hands){
hands.forEach(function(arr, index) {
var temp = arr.slice();
values[index] = parseInt(temp.sort().reverse().join(''));
});
var max = Math.max.apply(Math, values);
return hands[values.indexOf(max)];
}
bestHand(hands);
这些是基础知识"功能"要使用套接字,您可以在socket.io
了解更多信息我不习惯每隔x秒做一次ajax请求它对我不合适,看看这个SO question并决定自己哪个是你想要的最佳方法跟随。
答案 1 :(得分:0)
使用AJAX轮询。
在该模板中抛出一个脚本标记。如果你使用的是jQuery,你可以做类似的事情......
window.setInterval(function() {
// call http server, get payload data and bind to interface
// $.get(...) or other ajax method
}, 30 * 1000)