中间件

安装第三方中间件

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,
}
powered by GitbookEdit Time: 2023-04-08 10:28:32