一直在Google上搜索,尝试了一些东西,并想出了各种奇怪的解决方案来解决我的问题,而没有真正获得任何地方。我的问题是,我将如何设置我的express.js应用程序让它每30秒运行一次?如何设置ExpressInterval应用程序?
推理是这样的,我有一堆变化每变化约30s,我需要重新呈现页面,以便这些显示出来。我提出的“解决方案”遇到了EADDRINUSE错误,因为我试图在与旧的端口相同的端口上创建一个新的服务器,所以我明白在这里需要做某些事情来避免这种情况,但什么?
如果有人想知道我尝试过了什么,我已经尝试了process.exit(并让PM2重新启动我的应用程序),setInterval,故意撞毁我的应用程序让PM2重新启动,甚至开始重写所有东西以让Web套接字运行在客户端和服务器之间来回切换,但是我觉得这可能会使问题过于复杂(如果我刚刚了解如何,标准的setInterval将解决所有问题)。
下面是我的快递脚本:
var express = require('express');
var app = express();
var ejs = require('ejs');
var config = require('./config');
app.set('view engine', 'html');
app.engine('html', ejs.renderFile);
app.get("/", function(req, res){
app.use(express.static(__dirname + '/views'));
async(function(variables) {
res.render('index',
{
// stuff to render
});
});
function async(callback) {
// several variables...
callback(variables);
}
});
app.listen(config.port, "0.0.0.0");
你在服务器端尝试'setInterval'吗?这是行不通的。可以将它设置在客户端并在tick上重新加载数据或使用socket.io并将数据从服务器推送到客户端。 –