[英]Re-Render EJS template in express node js
所以我使用 discord.js 和 express 并且我希望我的网页在client.on("message")
被触发时更新。 据我所知和研究,唯一可能呈现 ejs 模板的方法是在获取请求上,那么我应该如何处理这个问题。
这是我的index.js
const express = require("express")
const https = require('https')
const Discord = require('discord.js')
const config = require('./config.json')
const app = express()
const bodyParser = require("body-parser")
app.set("view engine", "ejs")
app.use(express.static("public"))
const client = new Discord.Client();
client.on("message", function(message) {
console.log(message.author.username + " : "+ message.content)
// I want a res.render("index", {data : message.author.username + " : "+ message.content }) //equivalent here
});
app.get('/', (req, res) => {
res.render("index", {data : "EMPTY"})
})
app.listen(8000, () => {
console.log("Running")
})
client.login(config.BOT_TOKEN);
This can be done using socket.io First install socket.io npm i socket.io
Then update your application to use the socket.io engine.
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const Discord = require('discord.js')
const config = require('./config.json')
const bodyParser = require("body-parser")
更新“索引”文件。 确保您尝试更新的文本具有id="count"
。
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on('count', function(data){
$('#count').html(data.count);
});
</script>
现在终于更新命令了。
client.on("message", function(message) {
console.log(message.author.username + " : "+ message.content)
data = message.author.username + " : "+ message.content
io.sockets.on('connection', function(sockets){
sockets.emit('count',{count:data});
})
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.