В ответ на ваш последний комментарий.
Вы правы, что null - это тип значения, но нулевые типы - это способ сообщить интерпретатору, что у него нет значения . поэтому вы должны установить значения для любого непустого значения или получить ошибку. в вашем случае установите эти значения для пустых строк. то есть
var newUser = new user({
/* We will set the username, email and password field to null because they will be set later. */
username: '',
passwordHash: '',
email: '',
admin: false
}, { _id: false });