怎么用node实现转发请求和渲染页面

公司有个老项目,是用jsp做的,然后每个页面的初始数据都需要自己通过请求拿过来再自己用js渲染页面,实在太麻烦,主管现在想用node做,主要是是用node转发http到原来的java后台,获取到数据后再由node返回给页面。

比如页面请求'/action'接口,在node中用路由实现转发到java端。
现在转发请求的做好了,但是页面初始的数据怎么办?

怎么在res.render前通过node请求相应的java接口,获取数据后填充到模板中?刚学node和express,已经绕不过弯了 _(:3」∠)_

阅读 9.4k
5 个回答

可以通过node的http模块得到接口数据,然后把json数据绑定到res.render上

T1xW8OFrXkXXXK71TW-590-611.png

你可以将res.render写在回调里面,等待数据请求完之后,然后再渲染页面。

使用 express-http-proxy 中间件吧

var proxy = require('express-http-proxy');
var app = require('express')(); 
app.get('/action', proxy('你的 JAVA 服务域名'));

如果 JAVA 服务层和 node 代理层的路径不一致,需要用上 forwardPath 参数来处理路径

和jsp一样,render方法中可以绑定请求回来的数据,比如,ejs,jade都可以通过相应约定符号把数据取出来,
然后node会渲染结果html页面返回browser。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题