Node.jsでExpressを使用していて、リフレッシュ動作についてかなり混乱しています。 /test
をリフレッシュすると、配列の長さが0でないため、app.use
にヒットしたときに何かがサーバー側にキャッシュされているように見えます(下記のサンプルコードを参照)。私は/test
私は再びブラウザをリフレッシュしている打撃しているので、私は配列の長さをゼロにリセットすると期待します。Expressアプリケーションのリフレッシュ動作
デフォルトでは、app.useにキャッシュされますか? Expressミドルウェアは、リフレッシュの面でどのように機能しますか? Express 4.14のドキュメントでこれを明確に説明したものは何も見つかりませんでした。
==================
ブラウザエンドポイント:localhost:8000/test
クライアント:
$.get('/data').done(function(response){...}
ルート:
module.exports = function(app) {
app.get('/test', function(req,res) {
var arr =[];
app.use('/data', function(req,res, next) {
console.log(arr.length); // this is nonzero on refresh
arr.push(/* some stuff*/);
res.send({"arr": arr});
}
res.render('test.html')
}
}
サーバー:
var express = require('express');
var app = express();
require('./routes/route')(app);
app.set('views',__dirname + '/views');
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);
var server = app.listen(8000, function() {
console.log("server started 8000");
});
app.use(express.static(__dirname + '/public'));
Expressミドルウェアは、すべての要求ではなく、アプリケーションの開始時に1回だけ定義する必要があります。 – robertklep