L'erreur vient du bcrypt.hash method.Dans votre cas, vous avez le bout de code suivant :
bcrypt.hash(newUser.password, salt , (err, hash) => { ... }
Je pense que votre problème vient du newUser.password qui doit être vide (null ou undefined ). L'erreur indique data and salt arguments required . Il semble que votre sel soit correctement généré et que vous n'ayez pas vérifié si newUser.password === undefined , alors voici mon pari :en quelque sorte newUser.password n'est pas défini.
Vous pouvez également vérifier si le genSalt la méthode fonctionne bien en ajoutant if(err) throw (err); après l'avoir appelé comme vous l'avez fait pour le bcrypt.hash méthode.