# books **Repository Path**: xietian79/books ## Basic Information - **Project Name**: books - **Description**: nodejs课程内容,所有的部分 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-01-31 - **Last Updated**: 2024-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## nodeJs开发 ### nodejs基础概念 解析内核 chrome v8 基于Chrome's JavaScript runtime,也就是说,实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装. Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。例如,在服务器环境中,处理二进制数据通常是必不可少的,但Javascript对此支持不足,因此,V8.Node增加了Buffer类,方便并且高效地 处理二进制数据。因此,Node不仅仅简单的使用了V8,还对其进行了优化,使其在各环境下更加给力。 #### node的优点 1、基于V8虚拟机,可构建高性能服务器 2、单线程 3、可利用Javascript进行后台开发 4、非阻塞IO 向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。 5、RESTful API REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 资源与URI 统一资源接口 资源的表述 资源的链接 状态的转移 #### 历史 作者 Ryan dahl - 2009 2 月份 node有想法 - 2009 5 月份 github 开源 - 2009 11月份 jsconf 讲解推广node - 2010年底 被xxx公司收购 - 2018 发布有重大bug #### 版本 偶数版本为稳定版 (0.6.x ,0.8.x ,0.10.x) 奇数版本为非稳定版(0.7.x ,0.9.x ,0.11.x) 问题 以前版本安装的很多全局的工具包需要重新安装 无法回滚到之前的版本 无法在多个版本之间切换(很多时候我们要使用特定版本) #### node版本切换工具 nvm 安装 ```bash https://github.com/coreybutler/nvm-windows/releases ``` nvm安装node版本 ```bash nvm install v12.16.3 nvm install v10.12 ``` nvm卸载node版本 ```bash nvm uninstall v12.16.3 nvm uninstall v10.12 ``` nvm查看版本 ```bash nvm list ``` nvm使用修改当前版本 ```bash nvm use v10.12 ``` #### node执行 ```bash node main 1 2 console.log(process.argv.slice(2)) process.argv ``` #### 尝试使用浏览器完成调试node代码 ```bash node --inspect a.js 打开地址浏览器地址 chrome://inspect/ 添加地址然后重新打开 node --inspect --inspect-brk a.js ``` #### node进程管理工具 ```bash nodemon supervisor forever pm2 npm i nodemon -g nodemon a 或者 npx nodemon a ``` ### 常用内置模块 这里介绍几个常用的内置模块:url, querystring, http, events, fs, stream, readline, crypto, zlib