Грешката идва от bcrypt.hash Във вашия случай имате следната част от кода:
bcrypt.hash(newUser.password, salt , (err, hash) => { ... }
Мисля, че проблемът ви идва от newUser.password който трябва да е празен (null или undefined ). Грешката казва data and salt arguments required . Изглежда, че вашата сол е генерирана правилно и не сте проверили дали newUser.password === undefined , така че ето моят залог:по някакъв начин newUser.password е недефиниран.
Освен това можете да проверите дали genSalt метод работи добре чрез добавяне на if(err) throw (err); след като го извикате, както направихте за bcrypt.hash метод.