Node.js 学习的记录过程
1.了解Node.js
稀土掘金地址:https://juejin.cn/post/7042325222036340767
1.1 Node.js的初始了解
Node.js 是一个非常新兴的开发工具,它诞生自 2009 年,年龄远不如 Python、Ruby、PHP 等老大哥,但是它确实有史以来发展最快的开发工具,没有之一。在这短短的几年间,我们看到了 Node.js 从当初的一无所有到如今的飞速发展,这是没有任何其他开发工具能够媲美的。
- 谁创造了Node.js
Ryan Dahl,网名 ry,他就是 Node.js 的亲爹。
- Node.js 名字由来
Node.js 最开始叫 【Web.js】(发布之前),后来因为 API 设计越来越庞大,ry 和他的团队感觉 Web.js 太过于狭隘了,就有了现在的Node.js。
- Node.js 什么时候发展最快
API 开始大面积进入 Stable 和 Locked 状态时,大批开发者开始使用 Node.js 干各种事情,这个区间是 v0.6~v0.8 之间。Joyent 公司收购了 Node.js 原开发团队也是推动力之一。
- npm 是怎样的一种存在
npm 是一家独立的公司,由它的发明者 Issac 建立,是如今世界上最大的包管理平台之一,也是发展最快的一个。目前已有 210,081 个模块,每天下载次数达到 83,000,000+ 次
1.2 Node.js的发展历程
- 混沌期:发布初期,创始人 Ryan Dahl 带著他的团队开发出了以 Web 为中心的“Web.js”,一切都是非常混乱,API大多都还除外研究阶段。
- 成长期:Node.js 的核心用户 Isaac Z. Schlueter 开发出奠定了 Node.js 如今地位的重要工具--npm。同时也为他后来成为 Ryan 的接班人的重要条件。
- 高速期:connect, express, socket.io 等库的出现吸引了一大波爱好者加入到 Node.js 开发者的阵营中来。CoffeeScript 的出现更是让不少 Ruby 和 Python 开发者找到了学习的理由。期间一大波以 Node.js 作为运行环境的 CLI 工具涌现,其中不乏有用于加速前端开发的优秀工具,如 less, UglifyJS, browserify, grunt 等等。Node.js 的发展势如破竹。
- 更迭期:经过了一大批一线工程师的探索实践后,Node.js 也开始进入了时代的更迭期,新模式代替旧模式,新技术代替旧技术,好实践代替旧实践。ES6 也开始出现在 Node.js 世界中。
- 分裂期:ES6 的发展越来越明显,v8 也对 ES6 中的部分特性实现了支持,如 Generator 等等,利用
--harmony作为开启阀门。后来,诞生了 Io.js 分支,再后来也回到了 Node.js 主线上。 - 飞速发展期:随著 ES2015 的发展和最终定稿,一大批利用 ES2015 特性开发的新模块出现,如原 express 核心团队所开发的 koa。
2.学习 Node.js 可以做什么
2.1 学习Node.js的目的
● 学习Node.js是为了解前后端交互流程
● 同时为后面学习前端框架做准备
● 前端有很多业务不能解决,需要使用Node.js处理
2.2 Node.js的特点
● 单线程
● 非阻塞I/O
● 事件驱动
● 用的是Ecmascript语法,降低学习及开发成本
2.3 Node.js的应用场景
● Web服务API(开发接口)
● 后端的Web服务,例如跨域、服务器端的请求
● 基于Web的动态网站应用
● 多客户端的通信,如即时通信
● 不适合密集型的CPU应用
3.Node.js 下载与安装
- 官网地址:https://nodejs.org
3.1 Node.js 下载教程
- 进入官网,如图:
- 安装教程 如图:
- 到这一步,就可以一直Next就行
- 测试Node.js 是否安装成功
- 按键盘的window键(window图标)+R 即可打开运行对话框,输入cmd命令,打开命令窗口
- 输入node -v 若出现版本号,说明安装成功。如图:
4.Node.js 常用的cmd命令
- cd 切换运行目录
- dir 查看目录下所有文件
- cls 清空屏幕
- md 创建文件夹
- rd 删除文件夹
。。。待更新
5.Node.js 顶级对象和全局变量
- 顶级对象问题
- 在JavaScript中,window是顶级对象,但是在node.js中global是顶级对象。
- 一种自适应顶级对象应用而生,globalThis 可以自动判断是window顶级对象还是node.js顶级对象。
- 全局变量问题
Node.js 平台内置了:
__filename和__dirname等全局变量
//都是获取当前文件目录位置
console.log(__filename); //E:\WEB\web前端\node_js\day-01\code\day.js 包含本身文件
console.log(__dirname); //E:\WEB\web前端\node_js\day-01\code 不包含本身文件
- setInterval() 和 setTimeout()等方法
setInterval(()=>{
console.log('我是循环定时器');
},1000) //每一秒都会执行一次
setTimeout(()=>{
console.log('我是循环定时器');
},1000) //一秒后执行一次
内容持续更新中...
本文来自博客园,作者:{陈满想},转载请注明原文链接:https://www.cnblogs.com/Aman124/p/15700511.html

浙公网安备 33010602011771号