欢迎来到我的NodeJs专题系列,更多精彩内容持续更新中,敬请关注!

写在前面

前面我已经分享了100+篇前端相关的技术文章,都是自己平时工作中遇到的一些问题的问题,还有是我平时自学的内容。但是那些前端文章99%都是要基于浏览器。其实在大前端时代,还有一个很重要的组成部分,那就是NodeJs了。接下来的专题,我们就来分享一下NodeJs的基本和高级应用吧

本章,我将从以下几个方面来分享一下NodeJs的相关知识点。

  • NodeJs是什么?
  • NodeJs有什么优势和不足
  • NodeJs有哪些应用

NodeJs是什么?

前端开发在2009年之前,应该说都是基于浏览器的,也就是说,前端程序员能控制的就只有浏览器了。

比如我们想操作一下我们本地的文件,连接一下数据库等,基于安全机制,这些都是不被允许的。

这也就导致了前端一直是在程序员的鄙视链的最底端了。好像那时候,ajax好像是前端程序员唯一的“遮羞布”了。

然后,我们依然脱离不了后端的支持。

直到2009年,NodeJs横空出世。彻底巅覆了前端的技术分支,NodeJs也可以像Java,php等后端语言一样进行服务端的开发了。

根据官网的介绍,NodeJs是基于Google的chrome V8引擎开发的。

先来简单说一下,chrome v8是啥?它是google公司基于C++编写的,它可以用一解析JavaScript,v8的性能是非常高效的。

NodeJs并不是一门新的语言,它是一个js的一个运行环境,这个运行环境可以理解就是可以开发服务器端的程序。它的语法和普通的JS没什么区别。因此对于前端程序员来说,是非常友好的。

Nodejs的优势和不足

NodeJs的最大特点就是它 基于事件驱动异步非阻塞I/O

基于事件驱动是什么意思呢?事件这个概念在我们传统的dom中应该很常见了吧,举个例子

比如我们要读取一个本地大文件。我们只需要传入一个文件路径,然后加上一个回调函数,当文件读取完成后,将会触发一个成功的回调的函数,从而我们可以继续处理后面的逻辑。而读取文件的过程本身就是一个耗时的过程。异步将不再阻塞后面的程序继续运行

如果这个过程是一个同步的过程,那个后面的操作将要等到文件读取完成后再去执行了,这就造成了阻塞。像java php,他们都是同步的操作。

所以Nodejs的优势就已经体现出来了,对于高并发的网站,用NodeJs来处理用户的请求将比java和php都要高效。

哇,感觉NodeJs太牛了,那它有缺点吗?能把java,php它们干趴下吗?答案也很明确:不能。

既然NodeJs处理并发的能力要远远优于java,php,那为什么现在很多网站或者App的后台还是基于Java呢?

前段时间,面试的过程一般都会问面试官他们公司的后端用的是什么语言,答案都是java,只有一家是python。

NodeJs有一个缺点(痛点),那就是NodeJs计算能力远远不如java这样的编译型语言。

NodeJs的应用

NodeJs的地位好像有点尴尬,有高并发,但是后台一般又不用它。一般来说,一个大型的网站的后台可以使用多种语言,会结合每个语言的优势发挥各自的优势。

比如现在很多网站,都是用NodeJs来处理高并发,然后用Java这种稳定型的去后端的服务。Node就是我们常说的中间层了。

那。。除了作网站的中间层,还能做什么呢?大家不要忘了,自从NodeJs出来了,前端开发越来越复杂,也在慢慢的走向工程化了。

这其中最流行的打包工具就属webpack了,webpack本身,基于webpack的插件,loader都是基于Nodejs,如果没有NodeJs作为底层服务,这些将不复存在了。

当然,基于Nodejs的应用远远不止这些。更多Nodejs的知识点,后续将为大家一一分享。

总结:

  • 我们可以通过JS语法可以实现java实现的任何功能。他们各自有自己的优势。没有谁优于谁。
  • Nodejs为前端开疆拓土。为前端注入了新的血液。
  • NodeJs在前端工程化的应用。

这里是【畅哥聊技术】的《NodeJs》专题系列。更多内容持续更新中。

下期我们接着聊,未完待续。。

nodejs 更新_NodeJs(一)我对NodeJs的认知相关推荐

  1. npm更新和nodejs更新

    npm更新和nodejs更新 更新你已经安装的NPM库,这个很简单,只需要运行. npm update -g 更新Nodejs自身.一直依赖我都是下载最新版的源码,然后make install,及其繁 ...

  2. linux sublime nodejs,Windows环境下sublime的Nodejs插件详细安装图解

    前面的话 搜索了好多文档后,才成功在Windows环境下安装了sublime text3的nodejs插件.为了存档,也为了方便有同样需求的朋友,将其安装过程详细记录如下 安装nodejs 虽然nod ...

  3. asp是什么, javascript和php,asp区别,什么是 JavaScript 引擎, nodejs和vuejs的关系,nodejs和javascript区别

    asp是什么 ASP有两个含义: 一是英文Application Service Provider的缩写,意思是网络应用服务供应商: 另一个是英文Active Server Page的缩写,是微软推出 ...

  4. 如何使用gnvm自动更新Windows10操作系统上的nodejs

    在Github上根据关键字gnvm搜索: 下载这个软件,是一个go语言开发而成的应用. 升级之前,我的nodejs版本号为8.11.3: 使用命令gnvm update latest更新: 升级完毕, ...

  5. 下载nodejs的mysql安装包下载_nodejs安装包下载|nodejs(javascript运行环境) v5.3.0 最新稳定版 - 软件下载 - 绿茶软件园|33LC.com...

    nodejs(javascript运行环境)是款运行在服务器端的javascript.nodejs(javascript运行环境)使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效,Node ...

  6. nodejs安装_nodejs调试全局安装的cli脚本

    最近在阅读cordova-cli的源码,想着要是能直接在vscode中打开调试,一步步地查看cordova命令的执行过程,那么将会大大的方便我对其源码的阅读.然而网上找了很多教程,大多都是直接调试本地 ...

  7. linux nodejs 采集器,前端工程师通过nodejs链接linux,并上传代码进行半自动化更新,省去ssh+ftp的链接工具-前端黑科技-SegmentFault思否...

    这几天,有一个临时项目,每次发布,都要我本地手动zip,上传fpt,然后shell unzip. 搞得头大,不胜其烦. 我是个懒人,这明显不是我的风格. 干脆nodejs写一个自动链接服务器,并上传文 ...

  8. java与nodejs区别_nodejs和java之间有什么区别?

    node.js与java都是服务器语言,但是两者存在很大区别.下面本篇文章就来给大家介绍一下nodejs和java之间的区别,希望对大家有所帮助. 下面是node和java的区别的详细介绍: 1.No ...

  9. python nodejs 爬虫_NodeJS爬虫入门

    1. 写在前面 往常都是利用 Python/.NET 语言实现爬虫,然现在作为一名前端开发人员,自然需要熟练 NodeJS.下面利用 NodeJS 语言实现一个糗事百科的爬虫.另外,本文使用的部分代码 ...

最新文章

  1. 使用sbt编译打包,spark-submit命令提交的详细步骤
  2. 记录一下HALCON调用相机自带驱动加速采集速率
  3. 100亿数据1万属性数据架构设计
  4. 派生类的友元与析构【C++继承】
  5. jdk12 jdk1.8_JDK 12的Files.mismatch方法
  6. 【转载】企业即时通讯为什么兴不起也衰不了
  7. arduino char*转string_面试官:String长度有限制吗?是多少?还好我看过
  8. Search in Rotated Sorted Array
  9. CA 授权码bug 将导致Let’s Encrypt撤销300万张有效证书
  10. 非常漂亮滴皮肤skin++ 终极破解之法
  11. inode客户端连接成功上不了网_iNode智能客户端常见问题及解决办法
  12. 酷我音乐盒官方免费版最新版
  13. python npv 计算公式_Python中IRR的计算
  14. 服务器重装Linux系统详细图文教程(centos7)
  15. 三个数比较大小函数调用c语言,C语言程序系列第四弹–max函数判断三个数的大小...
  16. AppStore信息填写指南
  17. 手机管理应用研究【5】——应用杂篇
  18. WinSCP(5.11.2)绿色便携版,开源SCP/SFTP客户端
  19. Detecting Visual Relationships with Deep Relational Networks(阅读笔记)
  20. 一亩三分地(1point3acres)每日答题记录

热门文章

  1. 符合要求的安全电路用计算机屏蔽电缆,全国计算机三级信息安全技术习题及答案...
  2. oracle数据库的语言,oracle数据库语言类型
  3. java runnable 启动_Java多线程:线程的创建与启动
  4. mysql datahost ha_mysql MySQL数据库高可用HA实现
  5. Android 旋转木马轮播,jQuery旋转木马式幻灯片轮播特效
  6. mysql timestamp 默认值是什么#039;_MYSQL中TIMESTAMP类型的默认值
  7. java连接oracle失败_程序连接oracle数据库失败
  8. OSError: [Errno 22] Invalid argument: ‘
  9. mysql端口4050_mysql 安装使用小记
  10. C#中的as和is的使用方法