nodeJS(前后端分离、优势、不足
文章阅读,来自 前端之巅 去哪儿网 部分摘录
1.项目分离,页面分离
第一种是项目分离,承载页面分离。他的特点是简单,快速,前端只关注浏览器方面,除浏览器端之外都是后端负责。
缺点 :
沟通成本高,前期,前端需要使用 ng 或者代理工具调试,后期,还要把页面给到后端,并且新建一个对应的路由。
2.项目分离,只是后端的页面,放到了前端项目里
后端只需要配置路由,最终上线时,由发布系统负责把前端中的页面,自动同神携步到后端相应的目录中。其中相应的目录需要前后端提前约定,不然后端在渲染页面的时候,就会找不到相应的文件。相比第一种方案,稍微有点进步。沟通成本会有一定的降低。
缺点 :
不过如果需要在页面里做一些业务逻辑处理,还需要前端同学掌握和学习 velocity 语法,对于新同学而言看似掌握的了一门新语法,但实际操作起来并非想象中的流畅。
3.第三种方案是使用 Nodejs 作为页面渲染层,后端只负责数据的生产工作
这也是目前阶段主要的使用方式。它的优点是前端同学对于整个页面的生命周期有完全的控制权,包括开发,调试,部署,上线以及后期的性能监控,应用监控等等。可做的事情也更多,比如使用 React SSR 做同构渲染。
缺点 :
对于前端同学的要求也会很高,除学习前端知识外,还要学习后端知识。
整个应用都是由前端统一负责,所以还需要接收报警电话或者短信,7*24 小时,都在待命状态。
1.一些前端开发,只关注浏览器端,服务器端开发关注很少,或者根本就不关注 ;
2.认为 Node.js 只适合开发一些工具类的功能,相对于后端开发来看它只是个玩具 ;
3.Node.js 的生态不如其他后端语言生态健全 ;
4.涉及到后端开发的知识面比较广,在没有这些基础知识或者经验积累的基础上,考虑问题比较片面,最终做出的系统问题比较多,容易被后端鄙视 ;
看似问题很多,但实质上只有两个原因,
1,自身知识储备不够。
2,对 Node.js 了解不深,不敢应用在生成环境中,即使应用到生产环境,一旦出现问题,不能快速及时的处理,导致高层认为还不如其他后端语言稳定,降低了我们的话语权。 (很中肯,不摸底,不敢用于项目)
1,提高开发效率,因为有了 Node 之后就不需要配置 Nginx 了,也不需要配置一些代理工具了,所有的页面生命周期都是由前端统一去管理的,这时候不需要其他人进行合作。
2,降低沟通成本,除了接口格式外,不需要和后端进行交互了;
3,前后端职责也更为清晰,因为这时候,界限更为清晰了,后端只负责生产数据,它只提供数据就可以了,至于数据怎么消费,以及怎么用,都由前端去做;
4,可游羡伏以同时使用 React SSR 技术派键,做到首屏渲染,提高用户体验,除了首屏之外,还可以做异步的加载、SEO 等操作。
5,Node.js 可提供一些服务,不仅能让我们使用,还可以对外使用,如 RESTful API,这样就不用有求于后端了。
/---------------------------------------------文章摘录结束-------------------------------------------------/
除了号称nodejs界jQuery的express,
另外两个比较不错的
一个是 360 团队的 Thinkjs ,
一个是阿里的 Eggjs
nodejs-koa2(mvc模式)前后端分离 前端设计
前后端分离,前端nodejs运行环境,使用koa2集成负责资源分配与用户交互,实现token验证用户身份,路由控制。等!
自行 百度 解决;
"program": "${workspaceFolder}\app.js"
此处就是是将app.js作为启动文件。${workspaceFolder}代表根目录,vsc启动时会在根目录下找到并加载app.js文件。
参数介绍: name 项目名称、 version 版本号、 description 项目描述、 main 项目启动文件、 scripts 启动快捷设置, author 作者, dependencies 第3方中间件名称及版本。
最重要的
“ dependencies ”这里添灶尘加一些要用到的包,以上是这次要用到的所有的包,版本自己更改。
“ scripts ”这里是一些nodejs的便捷命令,上线的时候会用到,直接在终端中,package.json同级目录 ,执行‘npm start’ 即 可启动app.js。
别的没啥太大作用瞎写隐桐禅即可。
启动相关配置,封装到config/init.js中,启动文件直接引用即可
3-6-1、init.js项目核心。
异常友好处理方法封装
路由配轮凳置
视图渲染
核心集成
3-6-2、config.js项目参数配置。为什么不用json文件 因为json不能加注释
3-6-3、token.js项目token相关方法封装。
执行后项目结构会增加两个文件
新增
src/hello.js。
views/index.html
浏览器访问:
输入值获取token
获取的token如图:
先不用带token进行访问: hello/jiaobaba,被token拦截,返回401
带上token访问: hello/jiaobaba
测试页面渲染,及跳转html页面,直接访问 /views
结束!!!!!!
需要源码联系我
如何通过nodejs来实现php的前后端分离
感觉PHP的话必要性不大啊,淘宝这么搞主要的原因是页面逻辑层前端来写,但是得使用Java的Velocity模版,问题是前端不熟悉Java、后端不熟悉HTML、JS,
不用Velocity完全使用Angular等又回带来缓存利用、SEO、性能的问题答碧
所以用Node在中间挡一层,后端只做服务,node负责模版渲染,前端都懂,页面还是前端用Angular等写
PHP完全没有这问题啊,前后端都会,干嘛非得用Node挡一层搭兄,即使分离用PHP也可以啊。还有不懂的可以上后盾网问知举袭问专家教师吧,希望能帮到你。
nodejs怎么实现前后端分离开发实例
感觉PHP的话必要性不大啊,淘宝这么搞主要的原因是页面逻禅陪辑层前端来写,但是得使用Java的Velocity模版,问题是前端不熟悉Java、后端不熟悉HTML、JS,
不洞袭册用Velocity完全使用Angular等又回带来缓存利用、SEO、性能的问题
所以用Node在中间挡一层,后端只做服务,node负责模版渲染,前端都懂,纳宏页面还是前端用Angular等写
PHP完全没有这问题啊,前后端都会,干嘛非得用Node挡一层,即使分离用PHP也可以啊
node js 前后端分离透传怎么实现的
html中js-发ajax请求-nodejs(restful api)-转发http请求-java端(restful api)-读取数据库后返回给-袭燃明nodejs-再转发给html-html
也就是你段指java端把什么之前生成html的部分剥离,而只留提供数据的api接口,如果是单页应用的话,node层仅仅是做转发,提供静态资源,或做一些access的验证工作,不留具体业拍告务逻辑。如果是服务器端渲染,则node还需要承担render视图的工作。