gpt4 book ai didi

javascript - 在不刷新浏览器的情况下将数据传递给 View

转载 作者:行者123 更新时间:2023-11-30 16:07:53 25 4
gpt4 key购买 nike

我是 Node js 新手,需要快速帮助。我有一个 node.js 应用程序通过这样的 GET 请求从另一个应用程序接收数据:GET/api/users?data=26' - 每 30 秒。我的 Node 应用程序代码如下所示:

 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)

我需要在用户不刷新浏览器的情况下将数据传递给 View (我有一个模板 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并自行决定哪种方法是您想要遵循的最佳方法。

关于javascript - 在不刷新浏览器的情况下将数据传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36747840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com