mynode>routes>routerIndex.js
const userController = require('../controller/promiseController');
router.get('/newCake.do', userController.getNewCake)
mynode>controller>promiseController.js
//导入dao
const userDao = require('../dao/promiseDao');
const userController = {
getNewCake(req, resp) {
console.log(req.query.scene);
console.log(req.query.t_name);
let scene = req.query.scene;
let taste = req.query.t_name;
//接收参数,多个参数时为数组[]形式
userDao.daoGetNewCake([scene, taste], function (result) {
if (result) {
resp.send(result)
}
})
},
}
mynode>dao>promiseDao.js
//导入连接池
const dbpool = require('../config/promiseConfig');
const userDao = {
daoGetNewCake(params, callback) {
//params的实参就是从controller传过来的[scene, taste],所以params是数组
//spl中问号的值对应arr中的值
let arr = []
if ((params[0] == '全部' && params[1] == '全部') || (params[0] == '全部' && params[1] == '') || (params[1] == '全部' && params[0] == '')) {
//两个都是全部 或者其中一个是全部 另一个是空
sql = 'select * from product where p_type = "cake"'
} else {
if ((params[0] == '' || params[0] == '全部') && params[1] !== '') {
//只筛选口味taste时
sql = 'SELECT * FROM product,pro_taste,taste WHERE pro_taste.p_id=product.p_id AND taste.t_id=pro_taste.t_id AND taste.t_name=? AND p_type="cake"'
arr.push(params[1])
}
if (params[0] !== '' && (params[1] == '' || params[1] == '全部')) {
//只筛选scene场景时
sql = 'SELECT * FROM product WHERE product.scene=? '
arr.push(params[0])
}
if (params[1] !== '' && params[0] !== '' && params[0] !== '全部' && params[1] !== '全部') {
//scene和taste都筛选时,直接让arr等于params,因为此时的sql语句需要查两个参数
sql = 'SELECT * FROM product,pro_taste,taste WHERE pro_taste.p_id=product.p_id AND taste.t_id=pro_taste.t_id product.scene=? AND taste.t_name=? AND p_type="cake"'
arr = params
console.log(params);
}
}
dbpool.connect(sql,
arr, (err, data) => {
if (!err) {
//回到controller找callback
callback(data)
}
})
}
}