events
```js
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
myEmitter.on('play',callback)
myEmitter.emit('play')
```
1. 移除全部事件 removeAllLisetener
2. 移除单个事件 移除的的监听函数 必须是绑定的函数
3. 绑定事件传参数
stream
* 流的方式读写文件
* req 可读流 res 可写流
* fs.createReadStream
* fs.createWriteStream
* copy文件 整体读取整体写入 readfile writefile
* copy文件 流读取整体写入 createReadStream writefile
* copy文件 流读取流写入 createReadStream createWriteStream
* 可以pipe实现简化
node 作为服务器的框架 express koa
express 便于我们快速开发node api接口
创建node服务器
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log('Example app listening on port 3000!'))
接口书写
get方法
get方法的参数 通过req.query req.url
app.get(path,(req,res)=>{
let data=req.query;
res.send()
})
post 方法
express 本身不能解析消息体里的数据
需要通过第三方插件 body-parser 来解析
post 数据格式有2种 x-www-form-urlencode 表单模式
application/json json
不同的数据模式对应不同的解析方式
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
解析代码 应该放到接口的上方
app.post(path,(req,res)=>{
let data=req.body;
res.send()
})
跨域问题
- 通过第三方插件 cors解决 app.use(cors());
- 设置头文件信息
app.all("*",function(req,res,next){
//设置允许跨域的域名,*代表允许任意域名跨域
res.header("Access-Control-Allow-Origin","*");
//允许的header类型
res.header("Access-Control-Allow-Headers","content-type");
//跨域允许的请求方式
res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS");
next();
}
``还有很多方法可以去看node官网文档
自己用express 写了邮箱登录注册 如有需要的童鞋可以去我的Git账户里下载看看