最重要的功能是路由功能,根据不同的方法和不同的路径返回不同的内容
路由,谁先定义谁先匹配,匹配完成时一般就结束响应了。
```
app.get(path,fn)
app.post(path,fn)
app.all() //all代表匹配所有方法
```
```
app.all('\*',fn) //代表匹配所有方法所有路径,一般用在都不匹配时进行兼容处理
```
## 中间件
```
app.use(path,function(req,res,next){ //多了一个next参数
res.end('over'); //中间间也可以结束响应
next(); //继续从上往下匹配
})
```
### next
### next传参
调用next的时候如果传一个任意参数就表示此函数发生了错误,然后express就会跳过后面所有的中间件并交给错误中间件来处理。
错误中间件和其它中间件的区别在于它有四个参数,多了一个err
app.use(function(err,req,res,next){
res.end('错误处理中间件'+err)
})
## params
```
/user?name=zfpx&age=8
//内部靠的是一个内置中间件
app.get('/usr',function(req,res){
console.log(req.query); // {name:zfpx,age:8}
console.log(req.path); // /user
console.log(req.hostname); //
res.end('ok');
});
// 原生http中我们需要对headers['url']进行解析
```