For folks coming to this question later, Protect.js is a good option, too.
It uses AES in GCM-SIV mode which is both faster and more secure than the defaults in Node or crypto JS. It also takes care of key management via ZeroKMS and even has searchable encryption capabilities.