我问个问题,难道使用nodejs做项目的,都是前台后台都用node吗?
发布于 6 年前 作者 langlang1234 16480 次浏览 来自 问答

难道就没有后端是别的系统,nodejs只是用前端相关功能(比如模板引擎、路由)之类的?

比如说我公司后端跑的是java,这个是必须稳定的,领导不让改动,那么想把前端相关的东西挪到nodejs,比如采用一些模板引擎之类的。

难道这样做有什么不妥吗?是不是用node,就必须把后端一起用了,非得跑个mongodb才行?

12 回复

当然非必需了

针对你说的作为模板引擎, 可以作为中间件使用,即 http -> nodejs service -> java service

@CoderIvan 有比较详细的教程么

@CoderIvan 没用过,不知道具体是怎么玩的

后端的java是输出json吗? 如果不是json接口,输出模板页面的话,数据怎么传给nodejs呢,难道让nodejs都抓页面吗?

node只负责前段模板渲染、路由定义,以及请求java的接口

前提是JAVA端有提供API。 然后要考虑你的受众: 1: 面向前台(企业展示,论坛等)需要考虑SEO的,用 node.js 作中间层很合理。 2: 面面后台(只供内部管理)不需要考虑SEO的,还不如直接做成SPA!当然前提是 api 是无状态的,http的,若是 RESTful的更好。

确实忘了说,JAVA侧就是纯粹提供API的,提供REST接口,不生成页面

@klesh 我请问,如果我用SPA做后台管理,那么用angularjs的话,我把前台代码部署在什么地方?

可以不和JAVA部署在一个机器上吗?有什么WEB服务器部署,如果不和后台在一个IP,那么跨域能解决吗?

整个架构的关键在于java 处理的业务数据怎么传给前端?之前做过一个证券项目业务处理有java,C,cobol,shell及一些脚步语言,就是楼上说的通过中间件的形式传送上下电文,把后端处理的数据封装成请求和响应电文放入中间件消息队列中,前端通过JavaScript 读取显示到画面上,如果有想法,我们可以一起去搭建下这个框架,实验下

当然可以,如果存在一定要跨域的情况,就要看你的 java api 能不能加上允许跨域的 header。 不过,我个人倾向于避免跨域,你可以设立一个 nginx 负责输出 spa 的静态内容,然后把 /api 请求 proxy pass 到 java api 上面,这样就不存在跨域的问题了。

多谢楼上,十分感谢!

回到顶部