前端使用JS脚本语言进行开发。

JS脚本语言需要依赖一个平台运行,从而生成可视化的东西。

Node.js提供这个平台,同时提供JS运行需要的一些插件、库、包、轮子、组件、功能等等。

JavaScript是一门脚本语言,它需要一个运行环境。就好像PHP需要Apache,JSP需要Tomcat等等(例子不全面,仅供理解)…… 而NodeJS之前,JavaScript运行环境是浏览器,也就是JavaScript在网页中才能跑起来。NodeJS之后JavaScript又多了一个运行环境,就是NodeJS。

由于NodeJS的最底层是Chrome的V8引擎,然后libuv封装了一些I/O的线程池管理和网络的I/O操作,这部分是C/C++写的。简单来说NodeJS可以控制系统文件的读写,网络的输入输出。所以NodeJS又可以被单纯的认为是一个可以运行 JavaScript 的服务器。(例子不全面,仅供理解)。

这些工具的起源和诞生几乎浓缩了前端的发展历程,因为 NodeJS 可以读写文件,监听网络输入输出。所以 NodeJS 和 VueJS、ReactJS、AngularJS 有非常本质的区别。NodeJS 是可以运行 JavaScript 的环境,剩下三个是用 JavaScript 写的库。

目前NodeJS大多被用于前端开发的开发环境。以Webpack作为例子,webpack是一个运行在 NodeJS 端的打包工具,它帮你把你写的 a.js, b.js, c.js ... 打包成一个 bundle.js。而这种打包的第一步是读取(文件读取能力)你的a.js, b.js, c.js ...,所以只能在 NodeJS 环境下做。

NodeJS 还能做啥?

用JS做服务器: Express / EggJS / HAPI / Koa 等等可以了解下

用JS做移动端混合应用:PhoneGap / Cordova / Ionic 了解下

用JS做移动端原生应用:React-Native / NativeScript / WEEX 了解下

前端和Nodejs的关系 简单理解的更多相关文章

  1. input屏蔽历史记录 ;function($,undefined) 前面的分号是什么用处 JSON 和 JSONP 两兄弟 document.body.scrollTop与document.documentElement.scrollTop兼容 URL中的# 网站性能优化 前端必知的ajax 简单理解同步与异步 那些年,我们被耍过的bug——has

    input屏蔽历史记录   设置input的扩展属性autocomplete 为off即可 ;function($,undefined) 前面的分号是什么用处   ;(function($){$.ex ...

  2. 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制

    [原创]分布式之数据库和缓存双写一致性方案解析(三)   正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...

  3. Redis之个人简单理解

    1.什么是redis? 在过去的几年中,NoSQL数据库一度成为高并发.海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机.然而在众多产品中能够脱颖而出的却屈指可数,如Redis.M ...

  4. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  5. 用nodejs搭建一个简单的服务器

    使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安 ...

  6. 我们为之奋斗过的C#-----C#的一个简单理解

    我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET ...

  7. 转:如何学习SQL(第二部分:从关系角度理解SQL)

    转自:http://blog.163.com/mig3719@126/blog/static/285720652010950825538/ 6. 从关系角度理解SQL 6.1. 关系和表 众所周知,我 ...

  8. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  9. [svc]简单理解什么是rpc调用?跟restapi有何区别?

    什么是rpc调用 restapi调用方式是对数据的crud. 常见的我们写flash写个api,或者借助django drf写个标准的resetapi,一个url可以借助httpget post pu ...

随机推荐

  1. CSS页面定制代码+动漫人物设计

    右下角的小人物(我蛮喜欢的) 把下面这段代码粘贴到设置里页脚代码处 在第六行的model左右的名字可选,我这个是叫z16 然后这里有别人的一篇博客有其他名字https://blog.csdn.net/ ...

  2. vue.prototype和vue.use的区别和注意点

    1.vue.prototype:实例上挂载属性/方法,例如Vue.prototype.axios = axios; 2.vue.use:引入插件,例如vuex,vue.use(vuex)如图,vue. ...

  3. Spring Cloud学习 之 Spring Cloud Ribbon(负载均衡器源码分析)

    文章目录 AbstractLoadBalancer: BaseLoadBalancer: DynamicServerListLoadBalancer: ServerList: ServerListUp ...

  4. webpack-常用配置知识点

    webpack配置多页面 webpcak配置多页面需要在entry中配置多个,在plugins中配置多个htmlWebpackPlugin,具体如下 entry:{ "index" ...

  5. 02_互联网基本原理和HTML入门

    上节课的知识复习 互联网的原理:服务器.浏览器.HTTP.知道网页文件是真实的物理存在,用HTTP请求这个文件. 要知道网址的含义:http://www.iqianduan.cn/aaa 请求哪个文件 ...

  6. (一只小白)对private,final关键字的一些认知

    1.private: private是私有的意思,在Java中可以用来修饰类里面的成员变量或者成员方法(注:不能修饰一个类,因为一个类如果外部无法访问的话,面向对象的编程思想将毫无意义),顾名思义,被 ...

  7. Kafka 的一些知识点整理【1】

    First: Kafka 是什么? Kafka 是一个发布订阅系统 最初是是LinkedIn 开发 最后交给Apache 开源组织 github地址:https://github.com/apache ...

  8. OpenCV Error: Unspecified Error(The Function is not implemented)

    Ubuntu 或者 Debian 系统显示窗口的时候遇到了这个问题 error: (-2:Unspecified error) The function is not implemented. Reb ...

  9. [hdu5340]二分,枚举,二进制压位加速

    题意:判断一个字符串能否划成三段非空回文串. 思路:先用二分+hash在nlogn的时间内求出以每条对称轴为中心的回文串的最大半径r[i](可以用对称的两个下标之和来表示 ),然后利用r[i]求出pr ...

  10. netty零基础入门

    直接上代码,从最基本的接收消息规则开始 package cn.qdl; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelH ...