Fejlen kommer fra bcrypt.hash metode.I dit tilfælde har du følgende kodestykke :
bcrypt.hash(newUser.password, salt , (err, hash) => { ... }
Jeg tror, at dit problem kommer fra newUser.password der skal være tom (null eller undefined ). Fejlen siger data and salt arguments required . Det ser ud til, at dit salt er korrekt genereret, og du har ikke tjekket, om newUser.password === undefined , så her er mit bud:på en eller anden måde newUser.password er udefineret.
Du kan også kontrollere, om genSalt metoden fungerer fint ved at tilføje if(err) throw (err); efter at have kaldt det, som du gjorde for bcrypt.hash metode.