| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 一文简单入门Node.js -> 正文阅读 |
|
[JavaScript知识库]一文简单入门Node.js |
前言JavaScript语言是网站开发必不可少的语言,只要有浏览器就能运行起来JavaScript代码。另外JavaScript还能单独运行在Node.js环境中,本文章重点介绍Node.js相关的基础内容,为深入了解Node.js铺路,后续会更新Node.js深入介绍。 Node.js安装及使用安装很简单,在官网下载安装就行了,地址是 https://nodejs.org/zh-cn 。安装完后在控制台输入node -v 后能有显示则证明安装成功,这个时候可以开始各种倒腾了。
可以创建一个JavaScript文件,用node命令来执行。
Node.js源码初步分析Node.js是怎么实现JavaScript代码执行的呢?Node.js源码地址是 https://github.com/nodejs/node/tree/main ,查看源码我们可以看到deps文件夹下面有很多依赖组件,其中最为核心的依赖组件是v8和uv文件夹。
Node.js基于v8 JavaScript 引擎和libuv实现了单线程/异步IO的JavaScript运行环境,显然没有线程资源抢夺场景,但是Node.js核心亮点不在于提供单线程JavaScript运行环境,而在于实现了跨平台的异步IO,其中linux系统下通过IO多路复用(epoll)+线程池来实现,Mac OS X系统下则是通过IO多路复用(kqueue)+线程池来实现,由于IO多路复用的实现依赖系统底层的实现,所以实现方法不一样。严格来说在linux和Mac OS X使用的都是同步IO,因为IO多路复用(select,poll,epoll等)就是同步IO,只是引入了线程池模拟实现了异步IO,让大家能够轻松使用异步语法(回调函数的处理),以下是官网提供的libuv实现异步IO的技术架构图。 由于JavaScript程序是单线程执行,代码肯定要有一定的执行顺序逻辑,定时器以及异步的回调函数何时执行也有讲究,Node.js提供了event_loop功能(事件循环机制)来判断什么时候执行。
比如下面的代码,输出的顺序是2,1。
从以上2个case可以总结出以下执行规则。 Node.js事件循环机制根据上面的case,可以大概得出Node.js的执行代码逻辑。
阶段概述 Node.js工程实践Node.js版本管理平时开发过程可能涉及不同的Node.js版本切换,可以通过安装nvm来进行管理,下载地址是https://github.com/nvm-sh/nvm ,下面是一些相关的命令例子。
Node.js 工程依赖包管理Python工程可以通过pip工具来管理依赖包,JAVA工程可以通过maven工具来管理依赖包,自然Node.js也得有个依赖包管理工具。Node.js则是用npm来管理工程依赖包。
package.json文件内容如下
可以通过npm install来安装其他的依赖包,如下安装koa(基于Node.js的web开发框架)。
package.json文件更新如下
Node.js应用场景跨平台开发(PC端,移动端) No de => De no?和Node一样提供JavaScript运行环境的还有一个叫Deno的程序,从名字上来看就是Node按No de的倒序,但是2者之间的开源项目关联不大,具体可以查看官网安装和使用(https://deno.land/),这里不展开介绍,额外引出的一个探索话题。 未完,持续更新。 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 10:31:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |