1. 前言

Node.js 是能够在服务器端运行JavaScript 的开放源代码、跨平台 JavaScript 运行环境。

随着前端的深度和广度日益提高,如果光会用一个Vue,可能自己就限制了自己以后的发展,因为现在哪个前端不会用一个框架。

前端的入门并不难,但是大公司或者高薪一点的前端开发,往往不能只会用一个框架,大部分还需要知道一些原理上的东西,而目前的前端框架包括很多第三方库,都大量的使用到了Nodejs。

所以Nodejs是前端进阶必不可少的一环,很多人可能会认为Nodejs和前端没有什么关系,那是后端的东西,因为Nodejs可以创建后端服务器。

其实并不是这样的,现在很多第三方库,第三方框架,比如Vue,React,都是建立在Nodejs的基础上发展起来的。

大家在使用框架写前端的时候应该都知道每次运行项目,热更新,以及最后的打包项目,都会有一个编译过程,其实这个编译过程就是通过Nodejs完成的。

不光是这个,还有服务器渲染(SSR),也需要通过Nodejs来实现,至于什么是服务器渲染,以及Vue怎么进行服务器渲染,可以看这篇:Vue服务器渲染优秀项目:Nuxt.js。

还有现在JavaScript能够写桌面应用,比如代表级产品VScode,前端开发中占比最大的编辑器,也是在Nodejs的基础上开发出来的。

总之,现在前端之所以能发展成一个庞然大物,Nodejs绝对是最大的功臣,所以你还觉得Nodejs对于一个前端来说不重要吗?

1.1 特点

Node最主要有以下3个特点:

  • 事件驱动
  • 非阻塞IO模型(异步)
  • 轻量和高效

2. 作为中间层

Node一般在一线企业中作为中间层,我们通常说前端和后端,前端负责用户界面,而后端负责提供数据和业务接口。

现在我们在两者间加入一层,前端并不是直接去请求后端业务接口,而是请求到中间层。再由中间层去请求业务接口。

中间层的优点

  1. 减轻客户端内存,项目用户体验好。不会像mvvm模式的项目把页面渲染和数据请求都压在客户端,而是在服务端完成。
  2. SEO性好,不像mvvm模式页面由js生成,而是在服务器渲染好html 字符,有利于网页被搜索到。
  3. 保持了前后端分离的优点和目的,即解放后端,后端可以继续以接口的形式写业务代码。
  4. 前端可以操控的范围增多,甚至可以做服务器,数据库层面的优化,比如中间层中常常用nginx,redis来优化项目,应对高并发。

中间层模式是一种开发模式上的进步,但是这种模式成本过高,成本高主要是高在服务器成本上。

一般的前端项目都是通过客户端解析JavaScript,然后渲染界面,而这种形式全靠服务器解析JavaScript文件,然后将解析后的HTML返回给客户端,这大大的提高了服务器的负载,如果你的网站访问量越大,你的服务器成本越高。

所以如果没有一定量级的项目没必要去采用,关键看你预算是否充足。

3. 前端项目构建工具

webpack,vue-cli都是前端项目构建工具,我们通过Vue或者React框架进行前端开发时,会由构建工具自动进行编译打包成浏览器能够认识和识别的项目工程文件。

如果没有Node的出现,那现在前后端分离也将变得不可行。

4. 中小型网站后端

Node在企业中,很少会用来作为后端,除非是有一定量级,前后端分离,想要更好的用户体验和更好的SEO,才会使用Node中间层。

大多数时候Node都是用来做个人项目的后端,真正的后端还是会使用主流的后端语言进行开发。

5. 个人观点

如果想要做后端开发推荐还是学习Java,因为Java经过了几十年的发展,生态已经非常健全,很多东西别人已经帮你写好,你只需要引进项目就行了,而使用Node开发后端很多东西都要自己写,并且很多公司的老项目都是Java和PHP。

对于后端开发者来讲,Node并不是那么重要,但是对于前端开发者来讲,Node必然是进阶路上的一环。

node 没有界面的浏览器_了不起的Node-为什么要学习Nodejs相关推荐

  1. node 没有界面的浏览器_node.js爬虫入门(二)爬取动态页面(puppeteer)

    之前第一篇爬虫教程node.js爬虫入门(一)爬取静态页面讲解了静态网页的爬取,十分简单,但是遇到一些动态网页(ajax)的话,直接用之前的方法发送请求就无法获得我们想要的数据.这时就需要通过爬取动态 ...

  2. node给java发送文件_如何实现node上传文件到后台?

    我在本地有一个主机,装了node,然后要把这个主机的一些监控视频或者其他文件上传到服务器,用的是post去请求java接口,这个怎么实现 function httpPost (url, params, ...

  3. node.js使用手册_权威的Node.js手册

    node.js使用手册 Note: you can get a PDF, ePub, or Mobi version of this handbook for easier reference, or ...

  4. 服务器 战地4 无限载入,战地4卡在loading界面无限载入_战地4无限载入解决方法...

    战地4卡在loading界面无限载入_战地4无限载入解决方法 首先说下卡在loading界面的问题,所谓卡loading界面,就是地图载入画面过后,黑屏,画面右上角有loading图标闪烁,可以听到声 ...

  5. node mysql实现登陆注册_使用 NodeJs 链接 mysql 的实现登录与注册

    基础要求: 电脑安装NodeJs ,熟悉javascript语法 ; 会使用工具 wamp 废话不多说,开始正文; 创建一个文件夹用来操作下面步骤; 使用 npm 安装 mysql插件; 完成后创建j ...

  6. 了不起的Node.js: 将JavaScript进行到底

    了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 201 ...

  7. 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)...

    了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编   赵静 译 ISBN 978-7-121-21769-2 2 ...

  8. 如何让Node.js运行在浏览器端

    Node.js又称服务端JavaScript. 今天我为了解决一个问题,通过搜索引擎找到了如何将Node.js转成浏览器端可以运行的javascript. 尽管这种方式有其局限性,但是还是可以用的. ...

  9. 集群资源分配_分析下 Node.js 关于集群的那些事

    需要了解的基础概念 一个应用程序中,至少包含一个进程,一个进程至少包含一个线程. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位 线程(Thr ...

  10. java界面化二叉排序树_层次序创建二叉树(图形界面和控制台输入实现)

    1 2018.11.7 2 XT3 4 /** 5 * 功能:构造二叉树6 * 说明:7 * 1.主函数输入模式有两种,BT参数 true 图形界面,false 控制台输入8 * 2.构造树是按层次遍 ...

最新文章

  1. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)
  2. jmeter全局变量传参_Jmeter 将正则表达式提取的参数传给全局(跨线程组使用变量)...
  3. 经常误提交.DS_Store文件怎么办?Git全局排除配置了解一下!
  4. 25个优秀的jQuery滑块教程和插件
  5. 第三章 PX4-Pixhawk-SPI底层驱动解析
  6. 机器人教育发展_得于人工智能发展,机器人教育低龄化越来越普及
  7. 模板方法设计模式(未完待续)
  8. html目录清华,清华大学HTML、《网页设计与制作》讲义.ppt
  9. 电子表格控件Spreadsheet 对象方法事件详细介绍
  10. 如何手动卸载SQLServer 2005
  11. [VBA]VBA编写的时光倒流软件
  12. java将数字转换成大写_Java中金额数字转换为大写数字
  13. 2 月份看了 17 本书,我只推荐这 8 本!
  14. Keil5改黑色炫酷背景
  15. muti-thread fork
  16. mybatis 自定义拦截器
  17. shiro设置ip白名单_亚马逊家庭IP:Luminati的搭建的步骤
  18. 2019年第四季度书单
  19. 【学习笔记】李宏毅-机器学习MachineLearning
  20. 使用easypoi将数据导入excel中

热门文章

  1. BZOJ3675[APIO2014] 序列分割
  2. 力特usb转232驱动程序下载_电脑USB接口、U盘接口不能使用的原因及解决方法
  3. centos7使用kubeadm部署k8s集群(使用containerd做运行时)
  4. linux 自动ping脚本,ping自动报警shell脚本forlinux
  5. python自动化_Python 接口自动化
  6. bigint hive java类型_【干货】Hive常用函数大全
  7. 超能搜索系统输入关键字_电商后台设计——搜索
  8. hive 筛选出数字_后悔没早点学会这几个万能的Excel筛选技巧,这些操作技巧得记牢...
  9. 设置y轴刻度_Origin中如何设置坐标轴单位长度相等? axisisometric
  10. php环境下cache失效,cache缓存失效高并发读数据库的问题