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版本号;
使用淘宝的镜像网址
npm config set registry http://registry.npm.taobao.org
安装cnpm
npm install -g cnpm
安装yarn
npm install -g yarn
跟npm类似,更强大些,支持断点续传,区别不大
安装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输出
npm root 功能
npm root -g
显示 npm 包储存位置的根目录(其实就是 node_modules 的所在位置)
common.js规范
- 自定义模块
- 导入:require;(“./”问题)
- 导出:module.exports或者exports;
- node_modules里package.json配置;
- node_modules查找规则(向上查找)
- 内置模块
- 内置模块不需要安装,外置模块需要安装;
npm网站可下载模块和文档
npmjs.com
require引入模块
require("./aModule") //注意一定要有"./",文件后缀可加可不加。
module.exports 导出 自定义模块的按需导出
通过module.exports 导出; \_\__dirname , \_\_filename
npm包管理器 https://www.npmjs.com
dependencies:运行依赖 jquery、vue、react 上线后依然需要
devDependencies:开发依赖 sass less 开发时方便,打包编译之后就无用了
npm常用指令
- npm i --save-dev(-D) --save( -S ); package.json
- -g
- npm root 、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/) (邮箱验证)
- npm adduser 输入刚刚注册好的用户名和密码 ;
如果注册地址不对需要重新改回来:
``npm config set registry https://registry.npmjs.org/ `` (官方地址)
`https://registry.npm.taobao.org/` (淘宝源地址)
查询源地址
`npm config list`
cnpm的安装及使用;
yarn包管理工具
npm install -g yarn
fs文件操作模块
所有文件操作都是有同步和异步之分,特点是同步会加上 "Sync" 如:异步读取文件 "readFile",同步读取
文件 "readFileSync";
所有文件操作 没有加Sync都是异步 否则是同步;
let fs = require("fs");
不加"utf-8",需要toString转换
文件操作
目录操作
buffer缓冲区 二进制的类
内部传递文件快速高效,不需转码
stream流:流与数据处理方面密不可分
流数据的获取
- pipe 管道 读取1.txt写入到2.txt
- data
- end
使用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的地址](<https://github.com/creationix/nvm>)可以查看最新版本
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]
6669, // Alternate IRC [Apple addition]