少しでもグーグルグーグルで、何かを試してみて、本当にどこにも行かずに私の問題のあらゆる種類の奇妙な解決策を思いついた。私の質問は、どのようにsetIntervalを私のexpress.jsアプリケーションが30秒に1回実行させるのでしょうか?ExpressアプリケーションをsetIntervalに設定するにはどうすればよいですか?
これは、〜30秒ごとに変わる変数があり、これらを表示するためにページを再レンダリングする必要があるという理由があります。私が思いついた "解決策"は、古いものと同じポートに新しいサーバーを作成しようとしているので、EADDRINUSEエラーに遭遇するので、これを避けるためにここで行う必要があることが分かっていますが何?
誰かが私が試したことを知りたいのであれば、私はprocess.exitを試してみました(そしてPM2が私のアプリを再起動させました)、setIntervalは意図的に私のアプリをクラッシュさせてPM2を再起動させ、クライアントとサーバーの間を行き来するのですが、これは問題を複雑にしているように思えます。標準の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'を試していますか?それは動作しません。クライアント側で設定し、目盛りに合わせてデータをリロードするか、socket.ioを使用してサーバーからクライアントにデータをプッシュします。 –