前面2期都讲得是浏览器端的东西比较多,包括Webpack,虽然是Node处理的,可是仍是浏览器端用的多,对于如今的前端开发来讲,不懂一点服务端的东西,简直没办法活,通常的招聘要求都会加上要懂一门服务端的语言,例如:PHP,Java之类的啦。如图所示:php
因此咱们这期就讲Node的东西。css
Node在前端领域使用最为普遍的就是工具链了,一期提到的构建工具都是Node写的,固然还有其余不少工具,好比:京东工程化,百度开源构建工具FIS3,微信发布的工做流工具等等一系列前端工具都是用Node写的。普遍的说,我认为一期提到的编辑器也算工具链的中的一种,Atom,vs code,Brackets都和Node密不可分。我我的感受,Node的发展,实际上大大解放了前端的生产力,对于其余的服务端语言的依赖基本能够说降到最低,能够依据本身的须要编写工具来完成技术目标。html
这方面你们也能够本身来产出下,例如我本身写了个小工具供本身使用:
vuejs 格式化 Atom插件
如今下载量也不错,有2000多了,还有好几个issues没有处理,哭!!前端
对于不少FE来讲,要搭建一个后端环境非常麻烦,并且不熟悉,容易出错(java,ruby,php),最糟的是本身不懂,出错了彻底不会调试,你的表情此时是这样的:vue
那么在1三、14年的时候,淘宝的前端团队,开始连续发文,先后端分离的思考和实践系列文章,提到了中途岛计划,也就是把Node做为前端和服务端的中间层,也就是这个架构,java
从这种图,不难看出,Node取代原来php,java干的一部分事情,也就是咱们常说的MVC框架中的VC基本都给Node来干,FE干的事情更多了,能掌握的东西多了,意味着对于本身更加灵活,能够考虑更多的组件化,工程化,性能监控,数据分析的事情。node
这方面的实践你们能够参考美团这边的图文:git
美团酒店Node全栈开发实践github
Full Stack developer 是近年来热炒的一个概念,究其缘由,跟Node的火热不无关系,早些年讲,一我的(大牛不算普通人)既要精通java又要精通js,html,css仍是很困难,不少思惟都不太同样,分开也很正常,而Node的出现,为不少比较厉害的前端提供了切入到服务端的机会,语言层面的问题不在是难点,重要的对服务端的知识点的熟悉程度。Node的最后一个大招就是替换一些传统的服务端语言,例如php,ruby,java等,在业务层上面使用Node来开发服务端彻底不成问题。web
例如: uber的调度系统几乎都是用 node.js 编写的
这方面的文章也有不少了,你们能够本身去搜搜看,包括各类框架,还有各类开源系统,均可以找到。固然也还有各类各样的坑和问题以待你们去踩和解决。
咱们公司来讲的话,三板斧基本都用上了,打包构建自不用谈,基本每一个前端都会用到,第二板斧咱们公司已经基本切换过来了,年后3月启动,目前是全部的web页面都是Node做为中间层,替换了php的渲染,中间天然有不少的困难要克服,但总体上来讲开发的效率仍是大大提高,不须要在配置php的环境,也不用在关心各类环境的依赖,总体上本身的一个独立的服务,使用接口的形式和服务端通讯。
那么三板斧为什么会用到,主要是目前国内最多见的mobile的web页面,基本在微信里面流传,而后这些页面还须要必定的数据交互,并且这种页面的特色就是短平快,不须要那么严谨,这种页面特别适合前端本身一撸到底,先后端通吃,接上 MongoDB当作数据库,基本两三天以内就能开发一个活动页面出来,不须要对其余服务有任何依赖,包括微信受权均可以本身搞定,工做量其实比对接其余语言服务大不了多少,某些方面,我我的认为还减小了不少的沟通成本。
先说说这个插件作什么的: 主要是自动的加载express框架下面的路由,省得一个一个路由须要手写。
一般咱们在express框架下面,写路由的时候都是一个一个的手写,而后在app.js里面去一个一个引用,通常是这样子的
那么好一点的状况,是这样子的,分散每个相同名字的路由到文件中,而后引用文件在app.js里面。
但实际上你可能在项目中路由状况是这样子的
你有什么想法?
虽然这样子也就是一个文件多两行代码,我仍是不爽,我为何要由于同一个规则而去多写这两个代码,并且10个两行,就是20行,原则上,能用机器干的事情,就不人干,并且PHP的一些MVC框架能够自动加载路由,他们会有一个文件夹的分层,很明显,路由都放到Controller文件夹下,而后根据路由名来匹配文件名的相应action,依据这个我本身就撸了一个express的自动加载路由,而后考虑了下一些特殊状况,作了点配置,不过目前只是支持一级目录,没有考虑多级目录状况,有须要能够本身添加,或者给我提issues。
本篇文章主要讲的是关于Node的东东,它的使用方向,更偏向结合前端的使用,并不是是很深刻的Node原理,也算是给不少前端解惑下,为何要使用Node,以及如何使用Node,不要盲目的听信别人的建议,须要结合本身项目状况,技术水平,以及团队配比。
更多的Node的使用细节和技巧建议关注:
下一篇咱们开启如何结合Webpack和express 搭建一个开发环境和项目目录