我正在使用Express與Node.js,並對刷新行爲很困惑。在刷新/test
時,由於數組長度不爲零(見下面的示例代碼),因此在刷新/test
時,似乎某些東西在服務器端緩存時出現app.use
。我期望數組長度重置爲零,因爲我在刷新瀏覽器時再次打到/test
。快速app.use刷新行爲
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中間件應該只在應用程序的開始處定義一次,而不是針對每個請求。 – robertklep