node版本常识 (要点)
- 偶数版本为稳定版 (0.6.x ,0.8.x ,0.10.x)
- 奇数版本为非稳定版(0.7.x ,0.9.x ,0.11.x)
- LTS(Long Term Support)稳定版
- LTS和Current(最新版)区别
客户端的JavaScript是怎样的
-
什么是 JavaScript? +是一个脚本语言 +运行在浏览器(浏览器的js解析内核 v8) +实现用户的交互 (interactive)
-
浏览器中的 JavaScript 可以做什么?
-
浏览器中的 JavaScript 不可以做什么?(不安全)
-
访问数据库
-
不能对文件进行操作
-
对os 进行操作
-
原因 是不安全 和浏览器运行机制有关
在开发人员能力相同的情况下编程语言的能力取决于什么?
- cordova hbuilder 平台 platform
- java java虚拟机 (运行平台)
- php php虚拟机
- c# .net framework mono
- js 解析内核 chrome v8
- JavaScript 只可以运行在浏览器中吗? 不是
为什么是JavaScript
- node js 不是因为js 产生的
- node 选择了js
- Ryan dahl
- 2009 2 月份 node有想法
- 2009 5 月份 githup 开源
- 2009 11月份 jsconf 讲解推广node
- 2010年底 被xxx公司收购
- 2018 发布有重大bug
- npm ( npm 最大的开源 , 包管理器 ) https://www.npmjs.com/
- github 世界上最大的同性交友网站( github.com) 码云( gitee.com)
what is node ?
-
Node.js 是一个基于Chrome V8 引擎的JavaScript运行环境 王者
-
Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效
-
事件驱动: 任务执行,发布者,订阅者,事件驱动 ( on emit )
-
非阻塞: 执行某一个任务的同时也可以执行其他任务
-
阻塞: 执行某一个任务,这个任务如果没有执行完成,其他任务必须等待
- 同步:
- 异步
-
-
I/O: 输入/输出( 数据库操作,文件系统操作等 )
-
非阻塞I/O模型: 当我们使用Node.js来实现数据库操作、文件系统等操作时,要进行的异步操作,异步操作的核心传统实现方式就是回调函数
Node.js的包管理工具npm,是全球最大的开源库生态系统
-
第三方: 国外的
-
建议: 切换国内的, 淘宝国内镜像源
- nrm
- 安装cnpm
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
查看是否cnpm安装成功
cnpm -v
- 官网 :http://nodejs.cn/
- npm 插件官网:https://www.npmjs.com/
Node的安装
-
安装包安装
- 官网下载对应的安装包
- 一路next
-
nvm安装(有一个类似的工具:nvm)
- Node Version Manager(Node版本管理工具)
- 由于以后的开发工作可能会在多个Node版本中测试,而且Node的版本也比较多,所以需要这么款工具来管理
- 默认安装结束之后,默认路径: C:\Users\xxx\AppData\Roaming\nvm
nvm安装教程博客:https://blog.csdn.net/qq_32682137/article/details/82684898
-
问题: 如果有的同学,任意目录不能使用nvm,只有在nvm安装目录下才能使用,那么就是环境变量有问题?
-
在高级环境变量中的系统变量中创建两个变量
1. NVM_HOME 2. 变量名: NVM_HOME 变量值:nvm安装目录路径 3. NVM_SYMLINK 4. 变量名:NVM_SYMLINK 变量值: Node.js的安装目录
-
在系统变量的path路径中将上面创建的变量引用进来
%NVM_HOME%%NVM_SYMLINK%添加到系统变量 pth路径的后面
切记: 不要将path路径删除了
- nvm使用
nvm list 列出当前电脑中所有的Node.js的版本 nvm install version 安装某一个版本的Node.js , 举例: 安装10.12.0版本 nvm install 10.12.0 nvm use version 切换某一个Node.js版本 切换后切记: 要确认Node运行十分正常 node -v npm -v 如果以上两者输出正常,那么久切换成功了 如果不正常呢?换版本下载安装( 必须在8.9+ 以上)
Windows下常用的命令行操作
-
切换当前目录(change directory):cd
-
创建目录(make directory):mkdir
-
查看当前目录列表(directory):dir
- 别名:ls(list)
-
清空当前控制台:cls
- 别名:clear
-
删除文件:del
- 别名:rm
注意:所有别名必须在新版本的 PowerShell (linux系统)中使用
电脑:
cmd里面用的叫做 DOS命令
cmd终端唤醒: win键 + R , 输入cmd 回车
mkdir 创建目录
dir 列出当前目录的列表
cls 清空终端命令
del 删除某一个文件
git / powershell 用的是linux命令
mkdir 创建目录
ls 查看当前目录列表
clear 清空当前控制台
rm -rf 文件名称 删除某一个文件或是目录
两种类型的命令中, cd是一个意思
Node.js实时监听( 自动刷新 )
借助第三方工具实现:
- nodemon 【 推荐 】
- cnpm i nodemon -g
- nodemon 文件名称
- supervisor
- cnpm i supervisor -g
- supervisor 文件名称
- 模块,包 commonjs
模块的分类
初始化工程
$ npm init -y 默认配置
内置模块:
以query string 这个内置模块为例,来学习Node.js中的内置模块的使用
querystring 是做字符串格式化
格式: const/var/let 变量名 = require( 模块名 )
使用api:
-
escape
将中文进行编码 const cityStr = 'city=北京' console.log( qs.escape( cityStr ) ) // city%3D%E5%8C%97%E4%BA%AC
-
unescape
将中文解码 console.log( qs.unescape('city%3D%E5%8C%97%E4%BA%AC') ) city:北京
-
parse
将字符串转为对象 let str = 'http://www.baidu.com/home?a=1&b=2#c=3' console.log( qs.parse( str ) ) { 'http://www.baidu.com/home?a': '1', b: '2#c=3' }
-
stringify
将对象转为字符串 [编码] const obj = { 'http://www.baidu.com/home?a': '1', b: '2#c=3' } console.log( typeof qs.stringify( obj ) ) http%3A%2F%2Fwww.baidu.com%2Fhome%3Fa=1&b=2%23c%3D3
总结:
内置模块直接引用
引入后直接使用它的api
自定义模块:
1.创建模块
-
对象、数组、字符串、函数
创建模块 const people = { card: 100, name: 'zhangsan', age: 20, sex: 'nan' }
2.导出模块
模块导出1.建议用这种方法
module.exports = {
people
}
//结果 zhangsan
模块导出2. module.exports = people
//结果 zhangsan
3.引入模块并使用
模块的引入
const { people } = require('./02-my-self')
//切记这里是相对路径
// 直接使用 console.log( people.name )