moralizer

(noun)

noun

1. One who moralizes.