1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本

Node.js
诞生于2009年,Node.js采用C++语言编写而成,是 一个Javascript的运行环境。Node.js 是一个基于 Chrome V8
引擎的 JavaScript 运行环境 ,让JavaScript的运行脱离浏览器端,可以使用JavaScript语言 书写服务器端代码。
安装Node.js
[Node.js官网](https://nodejs.org)下载稳定版本,node偶数版本为稳定版本,奇数版本为非稳定版本。
- mac 直接安装或者 brew来安装
- 安装完Node.js会自动安装NPM(Node Package Manager):包管理工具;
- Win + R , 输入cmd ,打开dos命令行,输入 node -v 查看NodeJS版本号;
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

使用淘宝的镜像网址
npm config set registry http://registry.npm.taobao.org
安装cnpm
npm install -g cnpm
安装yarn
cnpm install -g yarn
安装nodemon可自动终止并重启服务器,自动刷新文件
npm i nodemon -g
终止服务 ctrl+C按两下
安装cookie模块在运行依赖
npm i cookie -s
在项目文件夹创建package.json文件
npm init -y
创建一个package.json文件
package.json功能性
"scripts"标签可以自定义简写,运行命令npm run mytest,结果执行someting...
echo输出
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

common.js规范
- 自定义模块
- 导入:require;(“./”问题)
- 导出:module.exports或者exports;
- node_modules里package.json配置;
- node_modules查找规则(向上查找)
- 内置模块
- 内置模块不需要安装,外置模块需要安装;
npm网站可下载模块和文档
npmjs.com
require引入模块
require("./aModule")//注意一定要有"./",文件后缀可加可不加。
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

module.exports 导出自定义模块的按需导出
通过module.exports 导出; \_\__dirname, \_\_filename
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

npm包管理器https://www.npmjs.com
dependencies:运行依赖jquery、vue、react上线后依然需要
devDependencies:开发依赖sass less开发时方便,打包编译之后就无用了
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

npm常用指令
- npm i--save-dev(-D) --save( -S );package.json
--g
- npmroot、npm root -g

- npm init:引导创建一个package.json文件
- npm help(npm -h) :查看npm帮助信息
- npm version (npm -v) : 查看npm版本;
- npm search:查找
- npm install (npm i):安装默认在当前目录,如果没有node_modules 会创建文件夹;
- npm install module_name -S 或者--save即npm install module_name --save写入dependencies
- npm install module_name -D或者 —save-dev即npm install module_name --save-dev 写入devDependencies
- npm install module_name -g 全局安装(命令行使用)
- 指定版本安装模块npm i module_name @1.0 通过"@"符号指定;
- npm update(npm -up):更新
- npm remove 或者npm uninstall:删除
- npm root查看当前包安装的路径或者通过npm root -g 来查看全局安装路径;
注册与发布
- 注册账号:[https://www.npmjs.com/](https://www.npmjs.com/)(邮箱验证)
- npmadduser 输入刚刚注册好的用户名和密码;
如果注册地址不对需要重新改回来:
``npm config set registry https://registry.npmjs.org/ ``(官方地址)
`https://registry.npm.taobao.org/`(淘宝源地址)
查询源地址
`npm config list`
cnpm的安装及使用;
yarn包管理工具
npm install -g yarn
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

fs文件操作模块
所有文件操作都是有同步和异步之分,特点是同步会加上 "Sync" 如:异步读取文件"readFile",同步读取
文件 "readFileSync";
所有文件操作 没有加Sync都是异步 否则是同步;
let fs = require("fs");
不加"utf-8",需要toString转换
文件操作
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

目录操作
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

buffer缓冲区二进制的类
内部传递文件快速高效,不需转码
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

stream流:流与数据处理方面密不可分
流数据的获取
- pipe 管道读取1.txt写入到2.txt
- data
- end
1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本
文章图片

使用NVM(Node Version Manager)控制Node.js版本
- nvm是mac环境下管理nodejs的工具。在windows环境下推荐使用nvmw或者nvm-windows;
- Nvm-windows下载地址 https://github.com/coreybutler/nvm-windows下载 nvm-setup.zip
安装NVM
- 在安装nvm之前需要一个c++编译器,在mac上可以安装Xcode命令工具(已经安装可以忽略)
`xcode-select --install`
使用 curl安装
`curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash`
或者使用wget来安装
`wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash`
NVM [github的地址]()可以查看最新版本
NVM常用指令
` nvm --version查看版本`
``nvm install stable //安装最新稳定版nodejs``
`` nvm install 8.11.1//安装指定版本``
``nvm install 8.11//安装 8.11.x系列最新版本``
`` nvm ls-remote//列出远程服务器上所有可用的版本``
`` nvm use 8.11.1//切换到8.11.1版本``
``nvm use 8.11//切换到8.11.x最新版本``
``nvm use node//切换到最新版本``
``nvm alias default node //设置默认版本为最新版本``
`` nvm ls//列出所有已经安装的版本``
Google Chrome 默认非安全端口列表,尽量避免以下端口
1,// tcpmux
7,// echo
9,// discard
11,// systat
13,// daytime
15,// netstat
17,// qotd
19,// chargen
20,// ftp data
21,// ftp access
22,// ssh
23,// telnet
25,// smtp
37,// time
42,// name
43,// nicname
53,// domain
77,// priv-rjs
79,// finger
87,// ttylink
95,// supdup
101,// hostriame
102,// iso-tsap
103,// gppitnp
104,// acr-nema
109,// pop2
110,// pop3
111,// sunrpc
113,// auth
115,// sftp
117,// uucp-path
119,// nntp
123,// NTP
135,// loc-srv /epmap
139,// netbios
143,// imap2
179,// BGP
389,// ldap
465,// smtp+ssl
512,// print / exec
513,// login
514,// shell
515,// printer
526,// tempo
530,// courier
531,// chat
532,// netnews
540,// uucp
556,// remotefs
563,// nntp+ssl
587,// stmp?
601,// ??
636,// ldap+ssl
993,// ldap+ssl
995,// pop3+ssl
2049, // nfs
3659, // apple-sasl / PasswordServer
4045, // lockd
6000, // X11
6665, // Alternate IRC [Apple addition]
6666, // Alternate IRC [Apple addition]
6667, // Standard IRC [Apple addition]
6668, // Alternate IRC [Apple addition]
【1.Nodejs的安装及使用 / require引入模块 / module.exports导出模块 / npm包管理器 / fs模块 / buffer缓冲区 / stream流 / NVM版本】6669, // Alternate IRC [Apple addition]

    推荐阅读