express的简单使用
需要的npm包:express、body-parser、art-template、express-art-template
预先引入模块:express、fs、path、body-parser
一、静态页面的处理
- 使用
app.get方法精确匹配地址 - 使用
res.sendFile方法发送静态页面内容(可以发字符串内容或文件路径)
1 | app.get('/static', (req, res) => { |
二、资源的处理
使用app.use方法匹配所有匹配字符串开头的地址
发送资源内容,共有2种方法
① 使用res.sendFile方法发送资源内容
1 | app.use('/static', (req, res) => { |
② 使用express.static回调函数发送资源内容
1 | // express.static中的参数为存放静态资源的文件夹名 |
三、模板引擎的使用
- 初始化引擎
1
2
3
4// html为模板文件后缀名
app.engine('html', require('express-art-template'))
// pages为存放模板的文件夹名,将views文件夹改为pages文件夹
app.set('views', 'pages') - 使用模板
① 使用res.send方法发送模板字符串
1 | app.get('/', (req, res) => { |
② 使用res.render方法渲染模板内容
1 | app.get('/', (req, res) => { |
四、get请求的处理
- 使用
app.get方法精确匹配地址 - 使用
req.query获得转成对象的键值对数据
五、post请求的处理
- 引入并初始化body-parser
1 | const bodyParser = require('body-parser') |
使用
app.post方法精确匹配地址使用
req.body获得转成对象的键值对数据
六、重定向和状态码设置
1 | // 重定向至'.../' |
七、express中间件的使用
概念:
1. express中间件是一个函数,语法:`(req, res, next) => {语句; next();}`
2. 下一个中间件可以获取到上一个中间件的内容,如上面的req和res
3. 中间件可以对内容进行处理
4. 处理完成后会给下一个[路径匹配的]中间件使用
作用:
1. 把中间件放在响应的最前面,统一处理post请求的参数,存到req或res的属性中
2. 在响应过程中进行分支处理,例如将访问过多的ip进行重定向(通过req.ip获取访问ip)
八、express路由容器的使用
对于越大型的项目,不同文件的分工就越重要,维护时也越方便,路由的作用就是将主文件的作用整合,只让主文件处理大体问题,请求的响应一律交给路由处理。
对路由模块的处理:
const router = express.Router()1
2
3router.get(路径, (req, res) => {
...语句(处理
})module.exports = router
对需要路由的文件:
const router = require('./模块名')app.use(router)
九、登录的处理
在express中,登录信息可以存放在req.session的属性中,例如req.session.user = 用户信息,而访问首页时可以对登录信息进行检测,如果存在相应的信息就放行(next());如果不存在就重定向到登录页进行拦截。