‘壹’ 请问前端模块和node.js的关系
1 node.js是javascript运行时,可以看作是javascript运行环境,类比浏览器
2 npm和前端框架的关系类比jar包和maven,然后maven需要运行环境jdk,npm管理包需要node
3 用node.js开发前端或集成前端模块,则node.js主要是用来做为前端开发环境。完成之后,服务器是什么语言无所谓。此时服务器对于js和html来说,只是个http服务器,传输文件,运行环境还是在浏览器。
4 对于node.js模块来说,如http,express,file等模块,node.js环境是必须的。就好像java运行需要jdk。
‘贰’ 前端用nodejs能做什么
Node.js到底是什么?
Node.js是一个JavaScript的编译环境,当前端语言JavaScript在写完之后可以交给Node.js进行编译和解释,它的存在对于JavaScript有了质的飞跃。
下面就是一个简单的Node.js命令
#node hello.js
目前,Node.js在大部分领域都占有一席之地,尤其是I/O密集型的。
比如Web开发,微服务,前端构建等。不少大型网站都是使用 Node.js 作为后台开发语言的,用的最多的就是使用Node.js做前端渲染和架构优化,比如 淘宝 双十一、去哪儿网 的 PC 端核心业务等。另外,有不少知名的前端库也是使用 Node.js 开发的,如Webpack是一个强大的打包器,React/Vue 是成熟的前端组件化框架。
Node.js通常被用来开发低延迟的网络应用,也就是那些需要在服务器端环境和前端实时收集和交换数据的应用(API、即时聊天、微服务)。阿里巴巴、腾讯、Qunar、网络、PayPal、道琼斯、沃尔玛和 LinkedIn 都采用了 Node.js 框架搭建应用。
另外, Node.js 编写的包管理器npm已成为开源包管理了领域最好的生态,直接到2017年10月份,有模块超过47万,每周下载量超过32亿次,每个月有超过700万开发者使用npm。
Node.js是一个对于前端工作者不可或缺的工具。尤其是对于JavaScript有着巨大的提升,现阶段Node.js的应用已经有了非常蓬勃的发展。对于Node.js的学习和熟练运用,必不可少!
‘叁’ 为什么前端要会使用Nodejs
你熟悉JavaScript
假设你正在使用一个功能强大的客户端框架(Angular,Ember,
Backbone)以及REST-ful服务器端的API,使用JSON这种数据格式来传输和接受数据。即使你没有使用其中的任一种框架,你也用jQuery写过自己的框架。因此如果你不在服务器端使用Node.js,那么你就不断地做转译吧。你在转译两件事:
来自你脑中JavaScript的逻辑转换为服务器端框架的逻辑。
来自JSON的HTTP数据转换为你的服务器端的对象。
JavaScript贯穿着你的应用,你不但智力上涨,你也获得了实践经验。通过模型和模板的复用,你可以减少应用的大小,同时减少了复杂度和出现bug的可能性。
它很快
Node.js是JavaScript运行环境,使用了Google用在Chrome中的V8引擎。V8以闪电般的速度编译和执行JavaScript是因为V8将JavaScript编译成本地机器代码。包括网络连接的读写,文件系统的读写,以及数据库的读写——所有的在网页应用中的日常任务——在Node中执行地非常非常快。Node能让你创建快速,大规模的网络应用,能够处理高吞吐量的大量的实时连接。
工具
npm是Node.js的包管理器并且它棒呆了。这确实很棒,当然,这类似于其他生态系统的包管理器,但是npm很快很稳很一致。他在寻找和安装项目依赖做的非常好。他让包和其他的项目隔离开来,防止版本混淆。
实时变得简单
如果Node.js很擅长多并发连接,那么他也擅长多用户的,实时的网页程序,例如聊天室和游戏。Node的
event loop
能够满足多用户需求。实时能力使用websocket协议。Websocket是在客户端和服务器端的简单的双向沟通渠道。因此服务器能够推送数据到客户端就像客户端推送一样。websocket运行在TCP,避免了HTTP的消耗。
流数据
传统意义上来说,web框架将HTTP请求和响应当做一个整体的数据对象。实际上,他们是I/O流,你可以想象,如果你把文件从文件系统中以流的形式取出。既然Node.js非常擅长处理I/O,我们能够利用这个特点创建一些很酷的东西。比如,它能够当视频或音频文件上传的时候,就转码音频或视频文件,减少了整体处理的时间。
一个代码库和免费的实时
Meteor是下一代基于Node的web框架。他可以在客户端和服务器端运行相同的代码库。然后,数据自动保存在服务器。其他的方式也奏效!任何服务器上的数据都自动传到客户端。
‘肆’ Node.js是属于前端还是后端的技术
首先你得了解什么nodejs,其次了解什么后端技术及作用
1.node.js组成:谷歌浏览器的V8引擎、C++语言编写的,本质上是一个JavaScript的运行环境。提到js,就能想到浏览器里面的各种交互组件,异步请求等等,它们依靠浏览器JavaScript 的引擎,来解析页面的js代码。
2.目前流行的后端语言就是PHP、Java、.Net,使用后端语言实现服务器上的开发叫做后端技术。
3.nodejs就是让JavaScript(js)可以实现服务器上的开发。
4.JavaScript(前端语言)+nodejs(JavaScript的运行环境)=实现服务器上的开发(后端技术),也就是说js+nodejs实现了后端开发的技术
‘伍’ nodejs是后端还是前端
nodejs是后端,但用的语言是JavaScript,JavaScript是前端语言。
‘陆’ 前端需要学node吗
nodejs生来就是为了前端项目服务的,提供了一个平台,可以快速开发网页项目:如下摘抄的解释:
基于:NodeJS 提供了一个﹝让熟悉 JavaScript 的人可以快速上手并可进行后台系统开发﹞的环境/平台,这样的设定。
Short answer: 是的
Long answer:
对于现在的前端来说,尤其是多以 JavaScript 为主做 web app 而不是传统的以 HTML+CSS 为主的网站页面的前端来说,本身业务需求就需要对 JavaScript 有比较深入的理解和认识。
基于此,其对于 NodeJS 的基本概念应该是已经有一定的了解了的。
其次,作为前端自动化(如项目初始化、“编译”、测试等)的要求,需要一定程度上了解 Node,尤其是那些可编程式的工具,如Yeoman、Bower、GruntJS、GulpJS、Protractor等。
还有,作为 full stack engineering 的一种,NodeJS 只要求JS,所以使用 Node 可以让专业的前端(除了前端专业性的基本功,至少还要了解算法和数据结构等程序设计基础的),能够快速转型成全栈开发。
同时,对于以 JS 为主要开发语言并且有比较深入了解的前端来说,学习 NodeJS 难度并不高,event-driven 应该是本就熟悉的,stream 也类似,其它如闭包、Promise、模块化等更是如此;而关于网络、文件系统、进程等的概念理解和相关操作,对于计算机、电子、网络等相关专业出身的人来说,应该是已经有基本认识的,有此类背景的前端上手也会很快,而没有此类背景的,也建议去学习了解一下,毕竟属于计算机学科基础知识。
综上所述,不管是说为了前端自动化,还是前端开发人员为主的全栈式开发,又或者是扩展前端人员知识广度,都是应该有一定 NodeJS 基础的。
‘柒’ 前端为什么要使用node
nodejs并不是前端使用的,它是基于javascript和google v8的服务器编程语言。
很多类似Angular(不是Angular.js)之类的前端框架使用它,是利用它辅助项目构建等工作的。
还有部分使用nodejs作为mock服务器,将前后台开发分离解耦。
‘捌’ 为什么前端精通Node.Js的人这么少
1.nodejs比较新,09年才发布距今不到10年,跟JAVA、C++这些老前辈没法比;
2.更新比较频繁, 因为新所以要经常改,改动有多频繁?看人家更新日志感受下(node/ChangeLog at master · joyent/node · GitHub),因而对应的第三方模块改动也大,用过expres3.X跟4.X的同学都懂的。
3.战线比较长,战斗力自然分散,就像html5的 hybrid app 三端通吃,结果每一端都被原生碾压。前后端通吃的人,精力自然分散;哪能像单攻一端那么强?
4.nodejs目前定位比较尴尬,高不成低不就,大项目稳定性、安全性被质疑,小项目还是没人家PHP 各种CMS来得快。随着更新完善,这点以后必定会有所好转。
5.同行的嘲讽;我们行业总有那么一群人,对新、旧技术(c# html5 nodejs)了解皮毛后,发现其缺点然后无限放大在各种社区发帖黑之。虽然无法理解 这种 损人不利己的行为,但其对技术的发展阻碍作用还是很明显的。
PS:第4、5点导致nodejs开发领域,进来的新人多不了,自然就鲜少精通的牛人。
6.nodejs在技术层面上精通有一定难度,一方面 nodejs后台需要有后端思维才能玩的转,另一方面nodejs后台一些高阶实现就是调用C++代码模块,对于大部分没后台开发经验的前端同仁要精通又得多一道坎。
‘玖’ 前端用node哪些功能
一个是前端工程化部分,也就是代码的编译打包,偶尔跑个本地服务器用于方便开发项目。这部分主要就是用到node的一些系统库,文件操作,路径操作等。还有一方面就是在server端部分,就是用node做服务器,这部分就需要用到node关于网络方面的能力了,也需要考虑node和数据库,和web服务器或者别的web服务之间的配合等。也就是你最开始说的node处理高并发这些。
‘拾’ 学web前端是不是一定要学node.js
web前端,涵盖了超文本语言html,和css层叠样式表,以及原生javascript,学完这些以后还要学框架,后台,其中node.js就是比较好的框架,比原生js封装的jquery框架要更具有安全性和独特性,希望能帮到你.