Felet kommer från bcrypt.hash metod.I ditt fall har du följande kodbit :
bcrypt.hash(newUser.password, salt , (err, hash) => { ... }
Jag tror att ditt problem kommer från newUser.password som måste vara tom (null eller undefined ). Felet säger att data and salt arguments required . Det verkar som att ditt salt är korrekt genererat och du kontrollerade inte om newUser.password === undefined , så här är min insats:på något sätt newUser.password är odefinierat.
Du kan också kontrollera om genSalt Metoden fungerar bra genom att lägga till if(err) throw (err); efter att ha anropat det som du gjorde för bcrypt.hash metod.