Data access should be abstracted away.
My weapon-of-choice is Apache Wicket. I like it because I can have my HTML/CSS guru design the markup, and there’s no embedding of code and markup, and I can in parallel write the back-end code, and layer it out.
To me it’s insane to have your business logic in JavaScript, it should be in a more mature language, that’s not the “Flavor of the Month”. Front-ends come and go, but the business logic remains.
I always hated the UI portion of projects, and loved doing the back end stuff instead. I was usually fortunate enough to have employees and contractors to do the front-end stuff for me while I would assign myself the overall system and do the back-end stuff myself.