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 平台 platformjava java虚拟机 (运行平台)php php虚拟机c# .net framework monojs 解析内核 chrome v8JavaScript 只可以运行在浏览器中吗? 不是为什么是JavaScript
node js 不是因为js 产生的node 选择了jsRyan dahl2009 2 月份 node有想法2009 5 月份 githup 开源2009 11月份 jsconf 讲解推广node2010年底 被xxx公司收购2018 发布有重大bugnpm ( 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的安装
安装包安装
官网下载对应的安装包一路nextnvm安装(有一个类似的工具:nvm)
Node Version Manager(Node版本管理工具)由于以后的开发工作可能会在多个Node版本中测试,而且Node的版本也比较多,所以需要这么款工具来管理默认安装结束之后,默认路径: C:\Users\xxx\AppData\Roaming\nvmnvm安装教程博客: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=北京 unescape
将中文解码 console.log( qs.unescape('city=北京') ) 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://www.baidu.com/home?a=1&b=2#c=3 总结:
内置模块直接引用
引入后直接使用它的api
自定义模块:
1.创建模块
对象、数组、字符串、函数
创建模块 const people = { card: 100, name: 'zhangsan', age: 20, sex: 'nan' }2.导出模块
模块导出1.建议用这种方法 module.exports = { people } //结果 zhangsan 模块导出2. module.exports = people //结果 zhangsan3.引入模块并使用
模块的引入 const { people } = require('./02-my-self') //切记这里是相对路径 // 直接使用 console.log( people.name )