express处理路由
在express中封装好了去处理路由的方式,其方式不像之前那样需要自己去处理req.body以及req.querystring的内容。在这里只需要去分别调用处理其的封装好的方法即可。另外一点就是导入路由的方法,在app.js文件中处理的就是总的路由,在routes中处理的为各个分路由。那么接下来就用实际例子说明。
首先在routes中创建两个文件将其分别命名为user.js与blog.js,然后在其内部做子路由的处理,然后再在app.js中去
引用这个自定义的路由,然后使用app.use(path,自定义路由名)即可完成
再blog.js中处理list中的数据代码如下:
var express = require(‘express’);
var router = express.Router();
/* GET list page. */
router.get(‘/list’, function(req, res, next) {
res.json({
error: 0,
data: [1,2,3]
})
});
module.exports = router;
同理在user.js中文件的处理代码如下:
var express = require(‘express’);
var router = express.Router();
/* post user login page. */
router.post(‘/login’, function(req, res, next) {
// 可以通过req.body获取到username password
const { username,password } = req.body;
res.json({
error: 0,
data: {
username,
password
}
})
});
module.exports = router;
对于此login页面的代码部分可以很清楚的认识到,username password 都是通过req.body获取。在这里需要注意的
**是如果我们返回的是json数据,则在app.js中的处理代码为:app.use(express.json());
如果不是,则处理部分的代码为:app.use(express.urlencoded({ extended: false }));**
在之前没用任何的框架处理路由的方式当中,在数据处理这块处理的只是json格式的数据,而其他的数据格式并没有做任何的处理,在express中就封装了如何去处理其他数据格式的数据。在上面的代码中并没有完成最后的工作。还需要将导出的路由在app.js文件中做一个处理,首先通过require()引入,然后使用app.use(‘’,引入的文件)第一个参数传入对应的根目录,第二个参数为引用的文件。到此为止就在express中跑通了整个的路由,所有路由的处理方式都是如上过程所述。具体按照自己的实际情况来实现。
express处理session
首先来回顾session的作用,用于保存前台放在后台的一些信息。在req.session中主要保存的是登录信息,所以在这里涉及到对于登录校验,对于登录校验同样采用的还是中间件的方式来处理。在express中不需要我们手动去写处理session的函数,这个地方只需要去引用express中的express-session这个插件即可。然后只需要配置好参数即可。该配置文件是放在app.js当中,配置的代码如下:
首先引入这个插件 const session = require(‘express-session’)
//deal session
app.use(session({
secret: ‘#hhjdA165_’, // 传入的密匙
cookie: {
// path: ‘/’, //默认参数
// httpOnly: true, //默认参数
maxAge: 24 * 60 * 60 * 1000 //用maxAge直接写入最大储存时间
},
store: sessionStore
}))
与加密密码一样,session中的内容如果传入到前端我们可以将其加密,这样保证了数据的安全性,因此,在session中
传入的参数,第一个为secret: ‘content’,content中的内容为密匙 第二个参数是cookie,里面用于存放cookie中的数据
第三个参数为储存的位置,这里储存的位置将之与redis连接起来,将session的数据放入redis中有以下的好处:1.高效 2.共享数据。