Как предотвратить многократный вызов маршрутов в express.js - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок в 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!');
});

У вас есть представление о том, что может быть причиной этой проблемы и как ее избежать ??

Большое спасибо!

...