我喜欢NodeJS的某些功能,特别是JQuerification,通过socket.io的websocket兼容性,我不能与JSP一起使用的视图和CSS引擎(当然还有异步调用)。至少据我所知。因此,我计划在后端为Java的情况下创建应用程序,前端由NodeJS生成。前端表单将数据发送到NodeJS,后者将通过NodeJS和Java后端之间的套接字连接将其传递到Java后端。因此,NodeJS基本上就像前端和Java后端之间的中间件。
这将是一个非常大的应用程序,我的计划看起来很令人兴奋,但是我会因为走这条路而讨厌自己的未来吗?
我这样做的好处是,我可以拥有很多实时图表和仪表板,并增强与表单的交互。
问题是您谈论的是通用平台。Node.JS作为前端,JAVA作为后端。根据您的实际需求,这可能是奇妙的,也可能是可怕的。
所以呢?人们是否愿意使用成熟技术(或其他原因)会做出回应。
炒作
人们认为node.js的主要原因是炒作。像几年前的XML数据库。XML很酷,一切都必须用XML来完成…如果您注意到,没有人再谈论XML数据库了。
因此,node.js是新的,而您附近的博客则在谈论它,并与NoSQL数据库一起完美匹配。
异步IO
然后是诸如异步IO之类的理由。你懂?POSIX标准中的内容可能已存在20多年了。是的,您在学校的C课程中学到了什么。顺便说一句,标准的JAVA API也支持它。实际上,如果您收听node.js创建者,那么这并不是一个新概念,而仅使用异步库。那里的大多数库都使用线程模型,不能用于异步。Java本身并不是目标,但是JS中缺少任何标准库是一个很好的起点,因为它可以避免普通的joe通过包含错误的库而弄乱一切。那个不是我说的。
关键是现在有一些库,但是有一些由公司支持的库。我们仍然不在那里。同时,标准的专业框架已经在需要时支持异步行为,例如长轮询HTTP请求。请参阅Lift框架,请参阅Jetty或Tomcat对NIO的支持。
像XML数据库一样。现在,像Oracle这样的专业数据库确实支持XML。因此,如果您需要它,则可以保留标准的高性能数据库…以及只能执行此操作的专用解决方案…甚至没人记得它的名字。
Java脚本
现在使用javascript。Javascript是一个大胆的选择…由于缺少库。您知道仍然缺少什么。那就是为什么仍然需要Java后端的原因!但不仅如此… IDE对javascript的支持也不是很好。自动完成?勉强工作。重构?你在开玩笑吗?多线程?不。node.js就像Windows 3.1一样。它使用协作式多任务处理。
结论
Node.js很有趣,但是还不成熟。您自己说过,必须选择Java才能进行诸如连接数据库之类的实际工作。该堆栈增加了另一层的复杂性。
要么您真的需要它,要么这是一个不错的折衷方案……要么您不需要它,要么只是取悦自己……然后在您看到自己花更多的时间做所有事情时恨自己……只是说您具有4层堆栈(浏览器,Node.js,JAVA,DB),而不是3层。仅出于宣传和令人愉悦的理论。