De fout komt van de bcrypt.hash methode.In jouw geval heb je het volgende stukje code:
bcrypt.hash(newUser.password, salt , (err, hash) => { ... }
Ik denk dat je probleem komt van het newUser.password dat moet leeg zijn (null of undefined ). De fout zegt data and salt arguments required . Het lijkt erop dat uw salt correct is gegenereerd en dat u niet heeft gecontroleerd of newUser.password === undefined , dus hier is mijn gok:op de een of andere manier newUser.password is niet gedefinieerd.
U kunt ook controleren of de genSalt methode werkt prima door if(err) throw (err); . toe te voegen nadat je het hebt aangeroepen zoals je deed voor de bcrypt.hash methode.