使用node如何进行前后台分离?

最近使用express+ jade + mongodb做了个小练习,使用的jade模板引擎在渲染数据时需要在页面代码中嵌入js逻辑代码,个人很不喜欢这种开发模式,所以想问一下使用node如何实现前后台的完全分离?

回复
阅读 3.5k
7 个回答

前后端分离页面中也得嵌入 js 代码啊,前端要跑的逻辑肯定还是得跑,express + jade 已经做到了服务端渲染,通过数据渲染模版产生前端内容,前端再跑相对应的前端逻辑,这样已经算是完全分离了。

让node只负责后端,jade可以扔掉了。
前端用原生js进行ajax请求获取数据,再进行相应的逻辑处理即可

jade模板换成html,前端用ajax就ok了吧。。。(前端相当于静态资源,nodejs可以看作为一个web server)

通过 express + mongodb 可以将 URL 映射到数据库
———— 换言之,URL是数据的指针。

在 express + mongodb 技术上再加一层 jade 意味着,数据要流经 jade,跟模版耦合成 html 数据流 之后通过response返回给客户端

前后端分离,在于从数据库里取出来的数据是直接返回在 response
或者经过模版引擎处理后再返回。

( 体会下: res.jsonres.render )


可以参考一下淘宝前后端分离实践

细节有待商榷,但是大体模式都讲清楚了。如它里面所说的,要看你要的“前后端分离”分离成怎么样。以及你对前端这个东西的理解了。

我前一段时间刚搞了一个,不知道算不算前后端分离,我也是第一次搞这个,公司也没人知道该怎么搞,然后就自己摸索着弄了一下。
用的是express+ejs,跟你的express+jade差不多。
接口是原来就有的,我们原来的项目是这样的,前端页面通过ajax从接口获取到数据后渲染,非服务端渲染,所以接口还是那些接口,就前端渲染改成了服务端渲染。
用express编写route、controller,通过controller向原来的接口请求页面的初始数据,然后view里面用ejs填充模板,前端页面里后续的数据交互依旧通过ajax进行。controller里面要把接口给的数据处理一下,view里面肯定还是要有一些js逻辑的,不过这是用ejs的语法的js,比如for、if什么的,这填充模板的时候肯定需要用到。
当然,请求数据时需要自己封装好,我这里分成了controller里面的请求和前端页面自身的ajax请求。其实页面里的请求就是由node封装,然后转发一下。
其实就是把之前jsp的那种改成了模板由前端开发、数据填充也由前端了弄。

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