Node
基本介绍
-
客户端的JavaScript是一个脚本语言,运行在浏览器(浏览器的js解析内核 v8 ),实现用户的交互。
-
浏览器中的JavaScript不能访问数据库,不能对文件进行操作,不能对OS进行操作
-
在开发人员能力相同的情况下编程语言的能力取决于平台
what is node?
-
Node.js是一个基于Chrome V8引擎的JavaScript运行环境
-
Node.js使用了事件驱动、非阻塞I/O模型
事件驱动:发布订阅(发布者 订阅者 )事件驱动(on emit)
非阻塞:异步,执行某一任务的时候也可以执行其他的任务
I/O:输入输出(对数据库的操作 、对文件的操作)
-
非阻塞I/O模型: 当我们使用Node.js来实现数据库操作、文件系统等操作时,要进行的异步操作,异步操作的核心传统实现方式就是回调函数(callback)
-
Nodejs的包管理器npm ,是全球最大的开源库生态系统
- 建议:切换国内淘宝镜像源(nrm)
-
npm 插件官网:https://www.npmjs.com/
node版本常识
- 偶数版本为稳定版
- 奇数版本为测试版
- LTs和Current版本区别
window下常用的命令行操作
- mkdir 创建目录
- cls 清空屏幕
- rmdir 删除一个目录
- del 删除某个文件
- dir 列出当前目录列表
git/powershell用的Linux命令
- mkdir 创建目录
- ls 查看当前目录列表
- clear 清空(和window下不同,window下全部清空,而Linux下只是将全部操作过的命令上移)
- rm -rf 删除某个文件或者目录
-
node实时监听
- nodemon (建议使用)(npm install nodemon -g)
- supervisor
COMMONJS规范
前端规范:AMD CMD commonjs规范
nodejs就是commonjs规范的体现
定义module
每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
暴露接口
它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。
引用模块
require方法用于加载模块。
模块的分类
-
自定义模块
-
第三方模块(需下载才可以使用)(npm install request -S)
-
内置模块(首先要用require引入对应模块,再参照API使用)
-
http
http.request 是用来做数据请求
http.creatServer 创建服务器
http.get
-
querystring
qs.parse 将字符串转为对象
var str = 'http://www.baidu.com/home?a=1&b=2#c=3'// { 'http://www.baidu.com/home?a': '1', b: '2#c=3' }
qs.stringify j将对象转为字符串
const obj = { 'http://www.baidu.com/home?a': '1', b: '2#c=3' };console.log( typeof qs.stringify( obj ) )
qs.escape 将中文编码
const cityStr = 'city=北京'console.log( qs.escape( cityStr ) ) // city%3D%E5%8C%97%E4%BA%AC
qs.unescape 将中文解码
-
url 网址解析( 解析URL相关网址信息)
url.parse(urlString[, parseQueryString[, slashesDenoteHost]])
url.format(urlObject) url.parse的逆运算
-