Node 的作用和应用
脱离浏览器运行 JS
后台API编写
Webpack Gulp Npm等
中间层:服务器中负责IO读写的中间层服务器
Node的优势
便于前端开发入门
性能高
利于前端代码整合
Node中间层的优势
性能提高(异步IO 适合处理高并发)
处理数据
提高安全性
Node 模块
全局模块 (对象)
定义:何时何地都能访问,不需要引用。类似于 js
中的 document
window
例如:
process.env:
- 返回用户环境信息
process.argv:
提供当前进程有关的消息,返回一个数组
数组的第一个元素
process.argv[0]
: 返回node进程的可执行文件所在的绝对路径数组的第二个元素
process.argv[1]
: 返回当前执行的 JS 文件路径
系统模块
定义:需要 require()
,但不需要单独下载
例如:
path: 用于处理文件路径和目录路径的实用工具
1 | e.g. |
fs:用于文件读写操作
fs.readFile 接收的参数:
第一个参数:需要读取的文件路径。 ==>
'./demo.html'
第二个参数:回调函数。 ==>
callback函数
1 |
|
fs.writeFile 接收的参数:
第一个参数: 需要创建的文件名称及路径。 ==>
'./a.txt'
第二个参数: 需要写入的内容。 ==>
'写入一个文件'
第三个参数: 以追加方式写入文件。 ==>
{flag: 'a'}
第四个参数:回调函数。 ==>
callback函数
1 | let fs = require('fs'); |
自定义模块
定义:require 自己封装的模块
1 | e.g. |
关于引入的文件路径的问题:
require('./mod')
: 写路径的话 就会在当前文件夹中寻找这个模块require('mod')
: 只写模块名的话 就会在node_modules
文件夹寻找
HTTP模块
1 | e.g. |
Node 中的数据交互
GET 请求
数据是放在
url
地址栏进行传输的放在报文的头部 容量:< 32K
1 | e.g. |
1 | e.g. |
url.parse 接收的参数:
第一个参数:获取请求的URL地址。 ==>
/apis?userName=ceshi&password=123456
第二个参数:是否要自动处理好query里面的值(parseQueryString) =>
true
POST 请求
数据是放在body里面进行传输的
放在报文的主体里 容量大:< 2G
1 | e.g. |
1 | let http = require('http'); |
实现简单的登录注册案例
接口
什么是接口(API):不同功能层之间的通信规则
1 | <style> |
1 | let http = require('http'); |
npm 相关命令
npm init
: 初始化 生成package.json
文件npm install jquery
: 安装 jquerynpm uninstall jquery
: 卸载 jquerycnpm install
: 国内 npm 镜像npm i -g nodemon
: Node自动重启工具
使用以下命令即可安装:
npm install -g cnpm --registry=https://registry.npm.taobao.org