notes/sandbox/vue_sse/vue_sse_back/index.js
2023-04-22 00:41:54 -07:00

44 lines
1.1 KiB
JavaScript

const express = require('express')
const route = express.Router()
const app = express()
// const bodyParser = require('body-parser')
const path = require('path')
const cors = require('cors')
// middleware
app.use(
cors({
origin: true,
credentials: true,
}),
)
// app.use(bodyParser.urlencoded({ extended: false }))
// app.use(express.static(path.join(__dirname, 'public')))
// may not be necessary...
// app.use(express.json())
// routes
// route.get('/', (req, res) =>
// res.sendFile(__dirname + '/index.html'))
app.get('/stream', (req, res) => {
console.log('Client Connected')
res.setHeader('Content-Type', 'text/event-stream')
// res.setHeader('Access-Control-Allow-Origin', '*')
let i = 0
const intervalId = setInterval(() => {
// const date = new Date().toLocaleString()
// res.write(`data: ${date}\n\n`)
res.write(`data: hello: ${i++}\n\n`)
}, 1000)
res.on('close', () => {
console.log('Client closed connection')
clearInterval(intervalId)
res.end()
})
// send(res)
})
// server
app.listen(8080, () => console.log('listening on 8080'))