При использовании промежуточного программного обеспечения, которое вы используете каждый раз, когда вы делаете запрос, вы повторно инициализируете список задач как пустой массив, вы должны сделать это
app.use(function(req, res, next){
if (typeof(req.session.todolist) == 'undefined') {
var list = req.session.todolist || [];
}
next();
})
затем в запросе на получение
res.render('todo.ejs', {todolist: list});
в посте
list.push(req.body.newtodo)
и в запросе на удаление
list.splice(req.params.id, 1);