服务器上express 主动发送数据给前端
时间: 2023-12-19 12:06:02 浏览: 24
在Express中,可以使用Socket.io库来实现服务器主动向前端发送数据。
首先,需要安装Socket.io库:
```
npm install socket.io
```
然后,在Express的服务器端代码中,引入Socket.io库并创建一个服务器实例:
```javascript
const app = require('express')();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
```
接下来,可以在服务器端的某个事件中,通过Socket.io向前端发送数据。例如,在某个路由的处理函数中,可以使用Socket.io向客户端发送一条消息:
```javascript
app.get('/', (req, res) => {
io.emit('message', 'Hello, client!');
res.send('Hello, world!');
});
```
在上述代码中,`io.emit()`方法可以向所有连接到服务器的客户端发送消息。第一个参数是消息类型,第二个参数是消息内容。
最后,在前端页面中,可以使用Socket.io的客户端库接收服务器发送的消息:
```html
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
socket.on('message', message => {
console.log(message);
});
</script>
```
在上述代码中,`io()`函数会自动连接到服务器,并返回一个Socket对象。然后,可以通过`socket.on()`方法监听服务器发送的消息。第一个参数是消息类型,第二个参数是一个回调函数,用于处理收到的消息。