express的使用过程有两种方式:
方式一:通过express提供的脚手架,直接创建一个应用的骨架; 方式二:从零搭建自己的express应用结构; 方式一:安装express-generator 创建项目 项目目录如下├── app.js ├── bin │ └── www ├── package-lock.json ├── package.json ├── public │ ├── images │ ├── javascripts │ └── stylesheets │ └── style.css ├── routes │ ├── index.js │ └── users.js └── views ├── error.jade ├── index.jade └── layout.jade
之后 cd 进入到对应的目录下,然后将项目跑起来:
方式二: 自己搭建环境上面通过express提供的脚手架,直接创建一个应用的骨架;现在我们自己从零搭建项目:
初始化一个新的项目:
安装express:
新建app.js
express 初体验现在搭建自己的第一个express程序:在app.js中加入如下代码
进入项目根目录下,在终端中将服务器跑起来:
到浏览器:访问localhost:8000即可
请求和响应请求的路径中如果有一些参数,可以这样表达:
/users/:userId;
在request对象中要获取可以通过req.params.userId;
返回数据返回数据,我们可以方便的使用json:
res.json(数据)方式;
Express 中间件 认识中间件Express是一个路由和中间件的Web框架,它本身的功能非常少:
Express应用程序本质上是一系列中间件函数的调用;
中间是什么?中间件的本质就是一个回调函数;
这个回调函数接受三个参数:
请求对象(request对象);
响应对象(response对象);
next函数(在express中定义的用于执行下一个中间件的函数);
中间件中可以执行哪些任务?执行任何代码;
更改请求(request)和响应(response)对象;
结束请求-响应周期(返回数据);
调用栈中的下一个中间件;
如果当前中间件功能没有结束请求-响应周期,则必须调用 next()将控制权传递给下一个中间件功能,否则,请求将被挂起。
使用中间件express主要提供了两种方式:app/router.use和app/router.methods这两种方式把中间件应用到我们的应用程序中;
methods指的是常用的请求方式,比如:app.get或app.post等
path匹配中间件:
path 和 method 匹配中间件
日志记录中间件如果我们希望将请求日志记录下来,那么可以使用express官网开发的第三方库:morgan morgan安装:
如何用?直接作为中间件使用即可:
上传文件中间件图片上传我们可以使用express官方开发的第三方库:multer
multer安装:
上传文件:
添加上传文件后缀名:
上传多张图片:
请求和响应客户端传递到服务器参数的方法常见的是5种:
方式一:通过get请求中的URL的params;
方式二:通过get请求中的URL的query;
方式三:通过post请求中的body的json格式;
方式四:通过post请求中的body的x-www-form-urlencoded格式;
方式五:通过post请求中的form-data格式;
请求解析 方式一:params请求地址: http://locahost:8000/login/asd/ass
获取参数:
方式二:query请求地址:http://localhost:8000/login?username=liyingxia&password=123456 获取参数:
方式三:通过post请求中的body的json格式;在客户端发送post请求时,会将数据放到body中:客户端可以通过json的方式传递,也可以通过form表单的方式传递;
自己编写中间件来解析JSON:
适用express内置的中间件或者使用body-parser来完成:
方式四:通过post请求中body的x-www-form-urlencoded格式;
解析application/x-www-form-urlencoded:
可以使用express自带的 urlencoded函数来作为中间件:
传入的extended用于表示使用哪一种解析方式:
true:使用qs第三方模块; false:使用querystring内置模块; 方式五:通过post请求中的form-data格式;通过any借助multer去解析一些form-data中的普通数据:
响应方式end()类似于http中的response.end方法;
json()json方法中可以传入很多的类型:
object、array、string、boolean、number、null等,都会被转换成json格式返回
status()设置状态码
路由的使用使用express.Router来创建一个路由处理程序:一个Router实例拥有完整的中间件和路由系统;
静态资源服务器Node也可以作为静态资源服务器,并且express给我们提供了方便部署静态资源的方法;
错误处理方式