node.js是前端还是后端?

Author Avatar calidion 发表于 • 2017年04月03日 12:40 • 共 • 1709 • 次浏览

node.js不属于前端

经常有人说nodejs是前端,同时也有会出来反对说node.js是后端。

严格意义上讲node当然不属于前端。

因为Node一开始只是服务器端的js,但是现在的说法是node.js已经是js的一个运行时了。

它的核心是event driven, non blocking I/O,以及主要由npm构建的模块体系。

所以node.js本身与前端并没有关系,他是一个运行时.

node.js可以辅助前端开发

尽管nodejs不属于前端,但是node.js因为使用的语言是js。所以可以很好的辅助前端开发.

node.js繁荣了前端的构建工具

我们知道Web的开发体系中,分成前端,后端,工具,三个主要的领域。

前端主要由由浏览器,HTML+CSS+浏览器端JS完成。

后端主要是由Web服务器,数据库,动态脚本语言,其它的业务服务器等组成。

还有就是很多基础设计与便利资料,我们可以统称为工具。比如源码管理,编辑器,数据库备份,加密,解密,防火墙等一系列的工具。

那么node.js在前端开发里的作用主要还是工具的作用。主要表现在以下方面:

  1. 构件开发流程
    主要是将前端的开发过程变的简化,自动化。这类软件主要有gulp, yo, grunt.
  2. 构件项目文件
    主要作用是将前端的代码组织起来,包括html, css, js都组成起来,并打包完成。这类工具主要有webpack, browserify, require.js, uglify等

通过上述的几个功能,就可以通过node.js将前端的代码组织起来,然后通过node的工具软件,将node.js的代码转化成前端的js代码。

所以在这种意义上来讲,可以认为node.js的开发是前端开发。但是不表示node.js本身是前端。

node.js是以工具的形式,参与到前端开发之中。

node.js的作用就相当于是JAVA的GWT。

它最终生成的是前端的JS,但是不能说Java属于前端(至少目前还不是)。

所以虽然前端开发对于node.js的依赖非常的强,但是node.js并不属于前端。

node.js只是大量的参与了前端工具链的工作,并提供了更多,更好的前端工具。

小结

经过以上的分析,我想我们对于node.js已经有很清晰的认识了。

简单说就是

  1. node.js本身不属于前端,但是属于前端的技术栈。
  2. node.js是前端工具链的重要成员,它参与前端开发,属于前端技术栈里的前端工具。类似于GWT,或者编辑器,它本身并不是属于前端。
  3. node.js是js的运行环境,即可以服务于前端,也可以服务于后端。

在这里我们要区分好前端,前端技术,前端技术栈,前端工具等词汇的区别。

前端是指浏览器的执行环境。相反的后端是指服务器的执行环境。

前端技术则是指浏览器端的应用开发技术,包括HTML, CSS, 浏览器JS,Flash,Activex, Applet 等技术。

前端技术栈是指所有辅助前端技术运行的技术,包括前端技术本身,但是又不完全与前端技术本身相同。

前端工具是前端技术栈里的一部分,但是又不属于前端技术。

所以如果你理解了以上的概念你就能更好的确定node.js与前端,前端技术,前端技术栈与前端工具之间的关系。

问题与交流

技术交流+

nodejs全栈开发群: 423652352

开源贡献+

nodejs开源项目交流群: 312685910

问题与投稿:

向我们的公众号反馈: frontend-guru

田一块Web全栈公共号关注的是:1、正确性 2、前沿性 3、纠正性 4、重要性

如果你也持同样的态度,欢迎您的关注。

最后编辑于 • 2017年04月03日 17:16 •  

你尚未登录,无法进行回复。