中间件
安装第三方中间件
cnpm install body-parser --save
入口文件具体配置app.js
// 引入中间件
var bodyParser = require('body-parser')
// 创建 application/x-www-form-urlencoded 解析
app.use(bodyParser.urlencoded({extended:false}));
// 创建 application/json 解析
app.use(bodyParser.json());
中间件应用
在express中,已经封装好获取get参数的方法,即req.query,但是post请求的参数却没有被封装,需要我们借助中间件(body-parser)来获取!
首页控制器中间应用:先建controller文件夹,创建home.js
const path = require('path')
var url = require('url');
// 引入数据库
const db = require(path.join(__dirname, "../config/database"))
// 首页渲染 get请求参数获取
let index = async(req,res) => {
//url.parse(req.url, true)true把参数query属性转对象
var data = url.parse(req.url, true)
let where ={}
// 判断是否有分类ID
if(data.query.typeid > 0 && data.query.typeid != undefined){
where.typeid = data.query.typeid
}
//查询分类
var typelist = await db.table('type').select();
typelist.unshift({
id: 0,
name: "全部"
})
// sql语句查询
const contactlist = await db.table('contact').where(where).order('createtime DESC').select()
//赋值
const assign = {
typelist: typelist,
contactlist: contactlist,
typeid: data.query.typeid ? data.query.typeid : 0
}
//渲染模板 视图的index.html页面 assign模板赋值
res.render('index', assign)
}
//导出模块方法
module.exports = {
index,
}
用户控制器中间应用:在controller文件夹,创建user.js
const path = require('path')
const md5 = require('md5-node') // 引入加密码处理
// 引入公共函数
const {randstr} = require(path.join(__dirname, "../util/common"))
// 引入数据库
const db = require(path.join(__dirname, "../config/database"))
// 渲染用户中心
let index = async(req,res) => {
// 获取存储的用户信息
let LongUser = req.session.LognUser
//赋值
const assign = {
LongUser: LongUser
}
//渲染模板 找到视图下面的user.html页面渲染
res.render('user', assign)
}
// 渲染注册页面
let register = async(req, res) => {
//渲染模板页面 'user/register' 表示是视图下面的user文件夹下的register.html页面渲染
res.render('user/register')
}
// 注册方法 post请求的参数通过req.body来获取
let registerpost = async (req, res) => {
const email = req.body.email
let password = req.body.password
// 随机生成密码
const salt = randstr();
// 密码加密
password = md5(password + salt)
let data = {
nickname: email,
email: email,
password: password,
salt: salt
}
const result = await db.table('user').add(data)
if(result){
// 组装接口数据返回
return res.json({
code: 1,
msg: '注册成功'
})
} else {
return res.json({
code: 0,
msg: '注册失败'
})
}
}
//导出模块方法
module.exports = {
index,
register,
registerpost,
}