45天带你玩转Node(第一天)初探Node.js

45天带你玩转Node

粉丝要求博主系统的写一篇关于Node.js的学习资料,但其实我们的Node.js知识点并不少,所以博主为大家搭建了一个专栏,为了方便大家系统的学习Node.js,大家记得订阅哦!虽然我们的Node.js还很年轻,但是他也已经有了很高的地位,让我们尽情的畅游在Node.js的专栏中吧,希望通过此专栏我们能够系统的将Node.js学好,它将会成为我们的一大亮点,我们可以用这款前端中的后端语言让提升我们的价值与眼界,如今的他也已经成为面试官口中的高并发面试内容了,一起加油!

在这里插入图片描述

初探Node.js

    • 前言
    • Node.js简介
    • Node.js的发展史
    • Node.js 框架和工具
    • Node.js和浏览器
    • 总结

前言

我们熟知在一个完整的项目中我们是需要前端、后端双技术的配合,传统的Web应用开发主要还是以PHP+MySQL或者是Tomcat+Java,两个系列各有优势,前者开发方式便捷、简单,但是总体性能并不高,对于大量请求或者即时应用来说并不合适,而后者虽然继承了Java的高性能优势,但对于开发者来说过于繁琐,从而给开发者造成了一定的困难,Node.js则结合了上面两种开主流开发方式的特点,他是一个开源和跨平台的 JavaScript 运行时环境。作为当下的前端开发工程师,大家对Node.js已经是熟悉到极致了,毕竟我们只要使用前端框架进行开发,必不可少的就是在我们电脑上配置Node环境;

Node.js简介

Node.js发布于2009年5月, 是一种能够在服务器端运行 Javasoript 语言的宿主环境。该宿主环境能够支持跨平台功能,如 Windows 平合、Linux 平台、Mac 平台等。使用 Nodejs 可以在服务器端使用 JavaScript 语言完成如 PHP、Java、Perl 等语言才能完成的后端开发功能,并且完成的项目更符合软件工程的要求。

Node.is 最初是由 Ryan Dahl 发起的开源项目,后由 Joyent 公司进行商业运营,尽管 Node.js诞生时间还不长(于2009年诞生),但是到目前为止,已经发展成相当庞大的生态系统,包含各大领域层次的 NPM 包,如MongoDB、MySQL 的连接器,以及 CSS的样式表、模板引擎、数宇格式化等。使用这些 NPM 包可以相当快捷地完成基本应用的开发

当 Node.js 执行 I/O 操作时(比如从网络读取、访问数据库或文件系统),Node.js 将在响应返回时恢复操作(而不是阻塞线程和浪费 CPU 周期等待)
这允许 Node.js 使用单个服务器处理数千个并发连接,而​​不会引入管理线程并发(这可能是错误的重要来源)的负担。Node.js 具有独特的优势,因为数百万为浏览器编写 JavaScript 的前端开发者现在无需学习完全不同的语言,就可以编写除客户端代码之外的服务器端代码。在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,因为你不必等待所有用户更新他们的浏览器,你负责通过更改 Node.js 版本来决定使用哪个 ECMAScript 版本,你还可以通过运行带有标志的 Node.js 来启用特定的实验性功能。

Node.js的发展史

其实我们的Node.js才仅仅诞生12年,相比之下我们的JavaScript已经存在了26年,前端已经33年,在技术潮流中其实一个12年并不是很长,但是我们的Node.js发展到今天已经相对很完善了,可用性也非常高!下面先让我们了解一下Node.js的成长吧!

时间成长
2009Node.js诞生,第一版npm被创建
2010Express诞生,Socket.io诞生
2011npm 发布 1.0 版本,较大的公司(LinkedIn、Uber 等)开始采用 Node.js,hapi 诞生
2012普及速度非常快
2013第一个使用 Node.js 的大型博客平台:Ghost,Koa 诞生
2014大分支:io.js 是 Node.js 的一个主要分支,目的是引入 ES6 支持并加快推进速度
2015Node.js 基金会 诞生,IO.js 被合并回 Node.js,npm 引入私有模块,Node.js 4(以前从未发布过 1、2 和 3 版本)
2016leftpad 事件,Yarn 诞生,Node.js 6
2017npm 更加注重安全性,Node.js 8,HTTP/2,V8 在其测试套件中引入了 Node.js,除了 Chrome 之外,Node.js 正式成为 JS 引擎的标杆,每周 30 亿次 npm 下载
2018Node.js 10,ES 模块 .mjs 实验支持,Node.js 11
2019Node.js 12,Node.js 13
2020Node.js 14,Node.js 15
2021Node.js 16,Node.js 17

Node.js 框架和工具

Node.js 是一个底层平台。 为了让开发者的工作变得轻松有趣,社区在 Node.js 上构建了数千个库。

许多随着时间的推移而成为流行的选择。 以下是值得学习的部分列表:

AdonisJS:
基于 TypeScript 的全功能框架,高度关注开发者的效率、稳定和信任。Adonis 是最快的 Node.js Web 框架之一。

Egg.js:
使用 Node.js 和 Koa 构建更好的企业级框架和应用程序的框架。

Express:
提供了最简单而强大的方式来创建 Web 服务器。它的极简主义方法、没有偏见、专注于服务器的核心功能,是其成功的关键。

Fastify:
高度专注于以最少的开销和强大的插件架构提供最佳开发者体验的 Web 框架。Fastify 是最快的 Node.js Web 之一 构架。

FeatherJS:
Feathers 是轻量级的网络框架,用于使用 JavaScript 或 TypeScript 创建实时应用程序和 REST API。在几分钟内构建原型,在几天内构建可用于生产的应用程序。

Gatsby:
基于 React、由 GraphQL 驱动的静态网站生成器,具有非常丰富的插件和启动器生态系统。

hapi:
用于构建应用程序和服务的富框架,使开发者能够专注于编写可重用的应用程序逻辑,而不是花时间搭建基础设施。
koa:由 Express 背后的同一个团队构建,旨在更简单、更小,建立在多年知识的基础上。新项目的诞生是为了在不破坏现有社区的情况下创建不兼容的更改。

Loopback.io:
使构建需要复杂集成的现代应用程序变得容易。
Meteor:非常强大的全栈框架,为您提供同构的方法来使用 JavaScript 构建应用程序,在客户端和服务器上共享代码。曾经是提供所有功能的现成工具,现在可以与前端库 React、Vue 和 Angular 集成。也可用于创建移动应用程序。

Micro:
提供了非常轻量级的服务器来创建异步的 HTTP 微服务。

NestJS:
基于 TypeScript 的渐进式 Node.js 框架,用于构建企业级的高效、可靠和可扩展的服务器端应用程序。

Next.js:
React 框架,为您提供最佳的开发者体验,包括生产所需的所有功能:混合静态和服务器渲染、TypeScript 支持、智能捆绑、路由预取等。
Nx:使用 NestJS、Express、React、Angular 等进行全栈大仓开发的工具包!Nx 有助于将您的开发从构建单个应用程序的团队扩展到多个团队协作开发多个应用程序!

Remix:
Remix 是一个全栈 Web 框架,用于为 web 构建出色的用户体验。它开箱即用,提供构建现代 web 应用程序所需的一切(包括前端和后端)并将其部署到任何基于 JavaScript 的运行时环境(包括 Node.js)。

Sapper:
Sapper 是用于构建各种规模的 Web 应用程序的框架,具有优美的开发体验和灵活的基于文件系统的路由。提供 SSR 等等!

Socket.io:
构建网络应用的实时通信引擎。

Strapi:
Strapi 是灵活开源的 Headless CMS,让开发者可以自由选择他们喜欢的工具和框架,同时还允许编辑人员轻松管理和分发他们的内容。通过插件系统使管理面板和 API 可扩展,Strapi 使世界上最大的公司能够在构建精美的数字体验的同时加速内容交付。

Node.js和浏览器

浏览器和 Node.js 都使用 JavaScript 作为其编程语言。构建在浏览器中运行的应用程序与构建 Node.js 应用程序完全不同。尽管它始终是 JavaScript,但有一些关键的差异使体验完全不同。

从广泛使用 JavaScript 的前端开发人员的角度来看,Node.js 应用程序带来了巨大的优势:使用一种语言编写所有东西(前端和后端)的舒适性。

你有一个巨大的机会,因为我们知道完全、深入地学习一门编程语言是多么困难,并且通过使用同一种语言在 web 上执行你的所有工作,无论是在客户端还是在服务器上,你都处于独特的优势地位。

在浏览器中,您所做的大部分时间都是与 DOM 或其他 Web 平台 API(如 Cookies)进行交互。 这些当然在 Node.js 中不存在。 您没有浏览器提供的 document、window 和所有其他对象。在浏览器中,我们没有 Node.js 通过其模块提供的所有友好的 API,比如文件系统访问功能。

另一个很大的不同是在 Node.js 中你可以控制环境。 除非您正在构建一个任何人都可以在任何地方部署的开源应用程序,否则您知道将在哪个版本的 Node.js 上运行该应用程序。 与浏览器环境(您无法奢侈地选择访问者将使用哪种浏览器)相比,这非常方便。

这意味着您可以编写您的 Node.js 版本支持的所有现代的 ES6-7-8-9 JavaScript。

由于 JavaScript 的发展速度如此之快,但浏览器的升级速度可能会有点慢,有时在 web 上你会被旧的 JavaScript / ECMAScript 版本所困扰。你可以在将代码发布到浏览器之前使用 Babel 将代码转换为 ES5 兼容,但在 Node.js 中,你不需要它。

另一个不同之处是 Node.js 使用 CommonJS 模块系统,而在浏览器中我们开始看到正在实施的 ES Modules 标准。在实践中,这意味着你暂时在 Node.js 中使用 require(),在浏览器中使用 import。

总结

本篇文章全部都是理论内容,主要就是让大家对Node.js有一定的了解,以及发展史,虽然我们的Node.js还很年轻,但是他也已经有了很高的地位,让我们尽情的畅游在Node.js的专栏中吧,希望通过此专栏我们能够系统的将Node.js学好,它将会成为我们的一大亮点,我们可以用这款前端中的后端语言让提升我们的价值与眼界,如今的他也已经成为面试官口中的高并发面试内容了,一起加油!我们下篇见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转载】 安卓版手机微信如何清理微信空间

在手机微信的使用过程中,随着手机微信使用的时间越长,手机微信占用的空间越大,其实手机微信存储了很多聊天记录包括图片、视频等大文件信息,此时如果手机存储空间比较紧张,可以使用微信自带的清理工具对手机微信空间进…

45天带你玩转Node(第二天)走进Node.js

45天带你玩转Node 粉丝要求博主系统的写一篇关于Node.js的学习资料,但其实我们的Node.js知识点并不少,所以博主为大家搭建了一个专栏,为了方便大家系统的学习Node.js,大家记得订阅哦!虽然我们的Node.js还很年轻&#…

深入Vue原理_数据响应式

欢迎各位小伙伴们! 为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官 数据响应式响应式是什么如何实现数据响…

python scipy样条插值函数大全(interpolate里interpld函数)

scipy样条插值 scipy样条插值1、样条插值法是一种以可变样条来作出一条经过一系列点的光滑曲线的数学方法。插值样条是由一些多项式组成的,每一个多项式都是由相邻的两个数据点决定的,这样,任意的两个相邻的多项式以及它们的导数(不包括仇阶导…

EKS独领风骚

前言 随着公司的逐渐发展,开拓了更加多的子项目与小程序,这些都需要进行宣传,但是管理以及部署新的应用是一个繁琐的工程,部署麻烦而且更新业务的时候非常不方面。尤其面向用户的时候,体验感很差。于是想要使用docker…

Linux进程管理之ps的使用

主题Linux进程管理之ps工具的使用 一ps工具的介绍 ps: process state 进程状态ps - report a snapshot of the current processesLinux系统各进程的相关信息均保存在/proc/PID目录下的各文件中 默认显示的内容很少 [rootcentos65 ~]# psPID TTY TIME CMD2018 pts/0 …

openstack Q版部署-----安装报错问题

1、实例开机提示找不到磁盘Booting from Hard Disk... GRUB. 开启 CPU 虚拟化支持。 将计算节点 nova.conf 配置修改如下即可: [libvirt] cpu_mode none virt_type qemu重启服务 systemctl restart libvirtd.service openstack-nova-compute.service 2、错误: 超过…

深入Vue原理_双向数据绑定(视图/数据)

欢迎各位小伙伴们! 为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官 文章目录数据的变化反应到视图命令式操…

大厂直通车【C认证】踵磅来袭

欢迎各位小伙伴们! 首先为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官 你还在以为CSDN仅仅是一个简简单单…

深入Vue原理_全面剖析发布订阅模式

文章目录发布订阅模式优化优化思路思考理解发布订阅模式(自定义事件)收集更新函数触发更新函数6.5 总结总结写在最后本期推荐欢迎各位小伙伴们! 为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有&a…

web前端发展历程

总览前端发展史前言浏览器的发展史走进前端HTMLCSSjavaScript小前端时代大前端时代写在最后前言 目前在IT公司中前端的岗位越来越成为不可或缺的,前端的地位也愈见明显,很多学校已经体系的传授前端课程,众多培训机构也将前端知识作为了主流课…

修改wordpress上传文件大小限制

1. 登陆wordpress使用的数据库,切换到使用的database 2. 操作如下: > select meta_key from wp_sitemeta; > select meta_key,meta_value from wp_sitemeta where meta_keyfileupload_maxk; 修改为20M: > update wp_sitemeta set meta_value204…

php的符号的排序大小

转载于:https://www.cnblogs.com/cjjjj/p/10433334.html

浅谈 HTTP 和 HTTPS

很多前端伙伴问题有没有体系的面试题? 今天为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官 浅谈 HTTP 和 …

Ubuntu 搭建 GitLab 笔记 ***

简介 GitLab 社区版可以提供许多与 GitHub 相同的功能,且部署在属于自己的机器上,我们会因为网络及其他一些问题而不便使用 GitHub ,这时部署一个 GitLab 是最好的选择。 下载 GitLab 并安装 我的环境是 Ubuntu 16.04 下进行部署操作。 GitLa…

在浏览器输入URL到页面展示发生了什么?

输入URL后查询缓存DNS服务器TCP三次握手HTTP协议包浏览器处理HTML文档TCP 和 UDP 的区别写在最后很多前端伙伴问题有没有体系的面试题? 今天为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有&#…

iOS 高级去水印,涂鸦去水印

目前在研究一下图像的处理,看了一下相关的软件,比如:《去水印大师》,究竟去水印是怎么处理的呢?看图分析。 一共是三个功能:快速去水印、高级去水印、涂鸦去水印 快速去水印:暂时没找到好的处理…

Failed to execute goal maven-gpg-plugin 1.5 Sign

问题描述&#xff1a; 解决办法&#xff1a;跳过maven-gpg-plugin <build> <pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-gpg-plugin</artifactId><configuration&g…

一文搞懂this指向

前言 那你说一下 js 中的 this 指向吧&#xff01;这句话已经成为面试官口中的高频面试题&#xff0c;作为前端开发的我们&#xff0c;你真的搞懂了 this 指向了吗&#xff1f;快来跟我一起来查漏补缺吧&#xff01;通过几个小案例让大家更能直白的理解 this 指向。 很多前端伙…

难怪大家丢掉了postman而选择 Apifox

前言 当下采用前后端分离模式开发Web应用已经成为气候&#xff0c;在开发阶段有一个不成文的规定则是 项目开发后端先行 但是作为前端开发工程师的我们&#xff0c;难道在搭建完页面后只能等待后端的接口么&#xff1f;这样的话我们则完全被后端开发限制住了。在前面跟大家介绍…