首页 > 其他分享 >4.5

4.5

时间:2024-06-18 20:35:23浏览次数:6  
标签:4.5 Node Nodejs 代码 JS npm js

什么是 Nodejs ?

 

Node.js 的诞生

先来聊聊 Node.js 诞生的故事,了解一下它最早的定位,以及后来定位的变化。

Node.js 是2009的时候由大神 Ryan Dahl 开发的。Ryan 的本职工作是用 C++ 写服务器,后来他总结出一个经验,一个高性能服务器应该是满足“事件驱动,非阻塞 I/O”模型的。C++ 开发起来比较麻烦,于是 Ryan 就想找一种更高级的语言,以便快速开发。

可以说有两点促成了 Nodejs 的诞生。首先第一点,Ryan 发现 JS 语言本身的特点就是事件驱动并且是非阻塞 I/O 的,跟他的思路正是绝配。第二点,Chrome 的 JS 引擎,也就是 V8 引擎是开源的,而且性能特别棒。于是 Ryan 就基于 V8 开发了 Node.js ,注意 Node.js 听名字好像是个 JS 库,其实不是的,Node.js 是 C++ 开发的,到官网 http://nodejs.org 可以看到

Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境

所以说 Node.js 不是库,是一个运行环境,或者说是一个 JS 语言解释器。

Node.js 最初的定位是提升 Ryan 自己的日常工作效率,也就是用来写服务器代码的,但是后来没有想到的是 Node.js 在前端领域却大放异彩。

先说几句 Node.js 在服务器端的发展。Node.js 的诞生带给人们的是个大大的惊喜,传统上 Web 开发者,前端用 JS 写,但是写服务器端代码的时候还必须用另外一种语言,类似 Ruby/Java/PHP 等。但是 Node.js 出现之后,JS 前后通吃了。如果去网上搜 Node.js 的资料,很多都是用 Node.js 去写服务器代码的。

但是,Node.js 今天也成为了 Web 前端开发必不可少的基础设施。注意,Web 前端的 JS 代码最终还是运行在浏览器中的,所以运行的时候,或者说在产品环境下,不依赖于 Node.js 。但是,Node.js 诞生以后,前端大爆发,类似 React/Vuejs 这样的前端框架的开发环境变得非常强大和负责,Node.js 是这些开发环境运行的基础。

这就是关于 Node.js 诞生,以及它如何从纯后端发展到前后通吃的故事。

Nodejs 中运行 JS 代码

接下来,演示一下 Nodejs 中如何运行 JS 代码。

以前 JS 只能运行在浏览器中,Node.js 出现之后,不管是服务器上,还是我们自己的的笔记本上,只要安装了 Node.js 就可以运行 JS 代码了。假设,咱们已经安装好了 Node.js ,那么进入命令行,

node

执行 node 命令,就可以进入 Node.js 的交互环境。

1 + 1

执行加法操作,回车,就可以看到代码正确执行了。Ctrl-D 可以退出这个交互环境。

但是更为常见的一种执行方式,是把把代码写入到一个文件中。

app.js

console.log("hello");

然后这样来在命令行中执行

node app.js

就可以看到 hello 被打印出来了,而这样过程跟浏览器没有一毛钱关系。

另外有一点是要特别注意的。Node.js 和浏览器是不同的环境,是有着很多细小的差异的。首先,二者各自包含的全局变量不同。document 对象是用来操作页面的,所以只有浏览器环境下才可以直接使用。但是如果是要放到 Node.js 环境下运行代码,就不要使用 document 。同样的道理,Node.js 中可以直接拿来使用的 http 对象,在浏览器环境下就没有。其次,Node.js 和浏览器对 ES6 新特性的支持程度也是不同的,这一点也要注意。

关于如何在 Node.js 环境下运行 JS 代码,我们就聊到这里。

npm 是世界上最大软件包仓库

最后来聊 npm 。Node.js 引发了前后端开发的爆发,尤其是前端。 JS 开发者众多,所以贡献开源代码的人就非常多,所有这些凝结成了 npm 这个世界上最大的软件包仓库。

npm 是 Node Package Manager 的缩写,意思是 Node 的包管理系统。Nodejs 现在如日中天,其中 npm https://www.npmjs.com/ 这个功不可没。在这里,我们要实现各种功能几乎都能找到现成的别人写好的包,直接拿了用就好了。

很多 npm 包都对应一个 Github 项目,但是如果只有代码,那么使用起来还不是特别方便。而当系统上安装好了 Node.js 之后,就会配套安装一个命令,叫做 npm 。

npm install moment

执行 npm install moment 就可以把 moment 这个包从 npm 的软件包仓库中下载这个包,然后安装到本地了。而 npm 的软件包仓库中,有数以万计的 moment 这样的包。

关于 npm ,我们就聊到这里。

总结

什么是 Node.js 这集主体内容就是这么多了。总结一下:首先,Nodejs 是基于 Chrome 的 V8 引擎开发的一个 C++ 程序,目的是提供一个 JS 的运行环境。最早 Nodejs 主要是安装在服务器上,辅助大家用 JS 开发高性能服务器代码,但是后来 Nodejs 在前端也大放异彩,带来了 Web 前端开发的革命。Nodejs 下运行 JS 代码有两种方式,一种是在 Node.js 的交互环境下运行,另外一种是把代码写入文件中,然后用 node 命令执行文件代码。Nodejs 跟浏览器是不同的环境,写 JS 代码的时候要注意这些差异。最后,我们介绍了 npm ,通过 npm 装包的方式,开发中我们再也不用重造轮子了。

标签:4.5,Node,Nodejs,代码,JS,npm,js
From: https://www.cnblogs.com/binglinll/p/18255059

相关文章

  • 2024.5.30
    8-2【Python0026】图书评论数据分析与可视化分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】豆瓣图书评论数据爬取。以《平凡的世界》、《都挺好》等为分析对象,编写程序爬取豆瓣读书上针对该图书的短评信息,要求:(1)对前3页短评信息进......
  • 2024.5.29
    8-1【Python0025】中国大学排名数据分析与可视化分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】以软科中国最好大学排名为分析对象,基于requests库和bs4库编写爬虫程序,对2015年至2019年间的中国大学排名数据进行爬取:(1)按照排名......
  • 2024.5.31
    8-3【Python0027】函数图形绘制分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】设,,,其中,完成下列操作:(1)在同一坐标系下用不同的颜色和线型绘制y1、y2和y3三条曲线;(2)在同一绘图框内以子图形式绘制y1、y2和y3三条曲线。【练习要求】......
  • 2024.5.11
    8-3【Python0004】验证6174猜想分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得......
  • 2024.5.13
    8-5【Python0006】爬楼梯分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。【练习要求】请给出源代码程序和运行测试结果,源代码程......
  • 2024.5.15
    8-7【Python0008】筛法求素数分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。【输入......
  • 2024.5.14
    8-6【Python0007】杨辉三角形分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】输出n(0<n)行杨辉三角形,n由用户输入。【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。【输入格式】一行中输入1个整数n。【输......
  • 2024.5.17
    8-9【Python0010】正整数的因子展开式分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】编写程序,输出一个给定正整数x(x>1)的质因子展开式。【输入格式】请在一行中输入整数x的值。【输出格式】对每一组输入的x,按以下格式输出x的质因子......
  • 2024.5.16
    8-8【Python0009】查找鞍点分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】对于给定5X5的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、列坐标,坐标从1开始)。提示:鞍点的特点:列上最小,行上最大。【练习要求】请给出源代......
  • 2024.5.18
    8-10【Python0011】牛顿迭代法分数10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】编写程序,使用牛顿迭代法求方程在x附近的一个实根。【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。【输入格式】请在一行......