首页标语模块
-
bannerModel.js
const sequelize = require("../dbConnect"); const { DataTypes } = require("sequelize"); // 定义数据模型 module.exports = sequelize.define("banner", { // 配置表的列 midImg: { type: DataTypes.STRING, allowNull: false, }, bigImg:{ type: DataTypes.STRING, allowNull: false, }, title: { type: DataTypes.STRING, allowNull: false, }, description: { type: DataTypes.STRING, allowNull: false, }, }, { freezeTableName: true, // 禁止修改表名 createdAt:false, updatedAt:false, });
-
db.js
// 该文件负责对数据库进行一个初始化操作 const sequelize = require("./dbConnect"); // 数据库连接实例 const adminModel = require("./model/adminModel"); // 数据模型 const md5 = require("md5"); const bannerModel = require("./model/bannerModel"); (async function () { // 将数据模型和表进行同步 await sequelize.sync({ alter: true }) // 同步完成之后,有一些表是需要一些初始化数据的数据 // 需要先查询这张表有没有内容,没有内容才初始化数据 const adminCount = await adminModel.count() if (!adminCount) { // 进入此 if,说明该表没有数据,我们进行一个初始化 await adminModel.create({ loginId: "admin", name: "超级管理员", loginPwd: md5("123456") }) console.log("初始化管理员数据完毕"); } // banner进行初始化操作 const bannerCount = await bannerModel.count() if (!bannerCount) { await bannerModel.bulkCreate([{ "midImg": "/static/images/bg1_mid.jpg", "bigImg": "/static/images/bg1_big.jpg", "title": "塞尔达旷野之息", "description": "2017年年度游戏, 期待续作" }, { "midImg": "/static/images/bg2_mid.jpg", "bigImg": "/static/images/bg2_big.jpg", "title": "塞尔达四英杰", "description": "四英杰里面你最喜欢的又是谁呢" }, { "midImg": "/static/images/bg3_mid.jpg", "bigImg": "/static/images/bg3_big.jpg", "title": "日本街道", "description": "动漫中经常出现的日本农村街道,- -份独特的恬静" }]) console.log("初始化首页标语数据..."); } console.log("数据库数据已经准备完毕"); })()
-
/routes/banner.js
var express = require('express'); var router = express.Router(); const { findBannerService,updateBannerService } = require('../service/bannerService') // 获取首页标语 router.get('/', async function(req, res, next) { res.send(await findBannerService()) }); // 设置首页标语 router.post('/', async function(req, res, next) { res.send(await updateBannerService(req.body)) }) module.exports = router;
-
app.js
var bannerRouter = require('./routes/banner'); path:[ {"url":'/api/admin/login',methods:['POST']}, {"url":'/api/banner',methods:['GET']}, {"url":'/res/captcha',methods:['GET']}, ] app.use('/api/banner', bannerRouter);
-
/service/bannerService.js
const { findBannerDao,updateBannerDao } = require("../dao/bannerDao"); const { handleDataPattern,formatResponse } = require("../utils/tool"); module.exports.findBannerService = async function () { const data = handleDataPattern(await findBannerDao()) // console.log("data>>", data); return formatResponse(0, "", data); } module.exports.updateBannerService = async function (bannerArr) { const data = handleDataPattern(await updateBannerDao(bannerArr)) return formatResponse(0, "", data); }
-
/dao/bnnerDao.js
const bannerModel = require('./model/bannerModel') module.exports.findBannerDao = async function(){ return await bannerModel.findAll() } module.exports.updateBannerDao = async function(bannerArr){ await bannerModel.destroy({ truncate: true // 删除表的所有数据 }) await bannerModel.bulkCreate(bannerArr) // 批量插入数据 return await bannerModel.findAll() }
-
tool.js
// 处理数组类型的响应数据 module.exports.handleDataPattern = function(data){ const arr = [] for(const i of data){ arr.push(i.dataValues) } return arr }