我是node.js的新手,我正在尝试使用express.js和express-session创建一个简单的任务列表应用程序。但是,由于我不了解的原因,在我发出请求时,大多数路由都称为两次或树次,因此不应。例如,如果我向/new
发送请求,那么新任务有时会添加两次(或三次)而不是一次,这会导致问题...
我在其他线程中读到,问题可能出在浏览器上,试图获取一个favicon,但是如果我在console.log(req.url)
路径上记录所有传入的请求URL(/new
),则重复的请求会总是/new
而不是收藏夹图标...
这是我的代码:
var express = require('express');
var session = require('express-session');
// Create a new express application instance
var app = express();
// Initialize session
app.use(session({
secret: 'secret',
resave: true,
saveUninitialized: true,
cookie: {}
}));
// Initialize req.session.tasks if needed
app.use(function (req, res, next) {
if (req.session.tasks === undefined) {
req.session.tasks = [];
}
next();
});
app.get('/', function (req, res) {
res.send(req.session.tasks);
});
// Create a Test Task
app.get('/new', function (req, res) {
console.log(req.url);
req.session.tasks.push("Test Task");
res.redirect('/');
});
app.get('/clear', function (req, res) {
req.session.tasks = [];
res.redirect('/');
})
app.listen(3000, function () {
console.log('Task Server is listening on port 3000!');
});
您是否知道此问题的可能原因以及如何避免它?
非常感谢!