Search code examples
node.jsexpressexpress-session

Editing JSON file on NodeJS local server causing 'Express Session' params set to undefined


I have a small local NodeJS server that stores user's details in JSON file. When I update (delete\create) the file, my session properties values are set to 'undefined' for some reason.

I am using 'JSONFILE' npm module to update the file.

what do I do wrong?

This is how I set the session:

app.use(session(
  {
    secret: 'MoviesIL',
    resave: true,
    saveUninitialized: true
  }));

This is how I save the JSON (kinda basic):

const SaveUsers = (usersList) =>
{
    const usersOBJ = { "Users": usersList };
    return new Promise((resolve, reject) =>
    {
        jsonFile.writeFile(USERS_JSON_PATH, usersOBJ, (err) =>
        {
            if (err)
                reject(err);
            else
                resolve(true);
        });
    });
};

router.get('/main', async function (req, res, next)
{
    const usersList = await usersBL.GetUsersNames();

    if (req.session.Authenticated != true)
        res.redirect('/login');
    else
        res.render('Users/main', { "user": req.session.UserName, "OperationsLeft": req.session.DailyTransactionsLeft, "err": "", "UsersList": usersList });
});

Solution

  • The problem was 'Nodemon' package that restarted my server every file change. I added ignore section and now everything works fine. thanks for the comments.