Особенности синтаксиса Node.js

Недавно начал изучать javascript. Может кто нибудь подробно объяснить что происходит в коде ниже. Что такое done, почему null на первом месте? Я так понимаю это какой то стиль принятый именно в Node.js?

passport.serializeUser((user, done) => {
  done(null, user.id);
});

passport.deserializeUser((id, done) => {
  UserModel.findOne({where: {id}}).then((user) => {
    done(null, user);
    return null;
  });
});

Ответы (0 шт):