问题是你谈论的是一个通用平台。Node.JS作为前端,JAVA作为后端。根据您的实际需求,这可能是奇妙或可怕的。
那又怎样?人们会根据自己的感觉做出回应,这取决于他们是否喜欢成熟的技术(或其他什么)。
2021 年编辑
NodeJS已经成熟了很多,即使大多数人喜欢它永远不会是java(反之亦然)。我仍然建议坚持使用您为给定上下文选择的3层架构,并仅在需要时添加技术堆栈。我宁愿为数据科学等真实需求添加一个新的堆栈
大肆宣传
一个人考虑节点.js的主要原因是炒作。就像几年前的XML数据库一样。XML很酷,一切都必须用XML完成...如果你注意到,没有人再谈论XML数据库了。
因此,node.js是新的,您附近的博客都会谈论它,再加上NoSQL数据库,它必须是完美的选择。
异步 IO
然后是像异步IO这样的理由。你知道的?POSIX标准中的东西可能已经存在了20多年。是的,你在学校的C课程中学到了什么。顺便说一句,标准的JAVA API也支持它。事实上,如果你听 node.js creator,这不是一个新概念,而是只使用异步库。大多数库都使用线程模型,不能用于异步。Javascript本身并不是一个目标,但是JS中缺乏任何标准库是一个很好的起点,因为它可以避免普通人通过包含错误的库来搞砸一切。这不是我说的。
关键是现在有一些图书馆,但有几个是由公司支持的。我们仍然没有到达那里。同时,标准的专业框架已经在需要时支持异步行为,例如长轮询HTTP请求。请参阅 Lift 框架,请参阅 Nio 的 Jetty 或 Tomcat 支持。
就像XML数据库一样。现在,像Oracle这样的专业数据库确实支持XML。因此,如果您需要它,您可以保留标准的高性能数据库...而只有这样才能做到这一点的专用解决方案...好吧,甚至没有人记得它的名字。
Javascript
现在是javascript。Javascript是一个大胆的选择...因为它缺乏图书馆。你知道还缺少什么。这就是为什么你需要一个java后端!但不仅如此...IDE对javascript的支持并不好。自动完成?几乎不工作。重构?开什么玩笑?多线程?不。node.js就像Windows 3.1。它使用协作式多任务处理。
结论
Node.js很有趣,但它是不成熟的。你自己说过,你必须选择java,这样你才能做真正的事情,比如连接到数据库。此堆栈增加了另一层的复杂性。
要么你真的需要它,这也许是一个很好的折衷方案......要么你不需要它,你只是取悦自己...当你看到自己花更多的时间做所有事情时,讨厌自己......只是说你有一个4层堆栈(浏览器,Node.js,JAVA,DB)而不是3。只是为了炒作和令人愉悦的理论。