我是To Node js的新手,我需要快速帮助。
我有一个node.js应用程序,它通过GET请求从另一个应用程序接收数据,例如:GET /api/users?data=26'
-每30秒。我的节点应用程序代码如下所示:
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秒更改一次而无需刷新浏览器。我该如何完成?先感谢您。 最佳答案
您可以使用套接字,而无需成为专家即可实施它,只需尝试一下
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
io.on('connection', function (socket) { // connection event handler
socket.emit('client-listener', { data: 'hello world' }); // send info to the client, you can send an object with whatever info you want.
socket.on('server-listener', function (data) { //listening from the client
console.log(data.text); // should print 'from client'
});
});
//Client Side:
<script src="/socket.io/socket.io.js"></script> //reference to your script
<script>
var socket = io.connect('http://localhost');
socket.on('client-listener', function (data) {
console.log(data); // should print hello world
socket.emit('server-listener', { text: 'from client' }); //send data to the server
});
</script>
这些是使用套接字的基本“功能”,您可以在socket.io上了解更多信息
我不满意每隔x秒钟执行一次ajax请求,这对我来说不合适,请查看SO question并自己决定哪种方法是您最好的选择。