Я новичок в node.js и пытаюсь создать простое приложение со списком задач, используя express.js и express-session.Однако по той причине, что я не понимаю, большинство маршрутов вызываются два раза или три раза, когда я делаю запрос, а это не должно.Например, если я отправляю запрос на /new
, новая задача иногда добавляется два (или три) раза вместо одного, и это вызывает проблему ...
Я читал в других потоках, что проблема можетисходить из браузера, пытающегося получить значок, однако, если я регистрирую все входящие URL-адреса запросов (console.log(req.url)
) на маршруте /new
, дублированные запросы всегда /new
, а не favicon ...
Вот мой код:
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!');
});
У вас есть представление о том, что может быть причиной этой проблемы и как ее избежать ??
Большое спасибо!