1.创建main.js项目入口文件
https://blog.csdn.net/qq_36977923/article/details/122531905
2.创建路由

home的路由文件
//引入express框架
const express = require("express");
//引入home的控制器
const home = require("../../controller/home/home")
//引入中间件
const homeMiddle = require('../../middleware/homeMiddle');
//创建路由
let homeApp = express.Router()
//判断当天是否预约
homeApp.post('/test',[homeMiddle.auth],home.test)
//导出该模块
module.exports = homeApp;
home的控制器文件
const apiError = require('../../utils/apiError');
const responseJson = require('../../utils/responseJson');
const homeService = require('../../service/home/home/ho
//判断当天是否预约
test= async(req,res,next)=>{
//特别注意,这里请求获取的是post请求才会使用req.body来获取数据
let {uid} = req.body;
//如果是get请求需要改成这样子
//let {uid} = req.query;
if(uid){
//把值传给home服务层进行处理
await (new homeService()).dealUid(uid).then(async result=>{
if(result){
let {num,status,id} = result;
await res.send(responseJson.otherJson({data:{num,status,id}}));
}else {//返回数据
await res.send(responseJson.errorJson(apiError.EDIT_FAIL))
}
})
}else{
res.send(responseJson.errorJson(apiError.PARAMS_MISSION))
}
}
//模块导出
module.exports={
test
}
home的服务层文件
const Home = require('../../../model/home/home/index')
class homeService{
async dealUid(uid){
//把uid传入model模型,与数据库对接处理
return await Home.dealUid(uid).then(async response=>{
if(response.length <= 0){
return false;
}else{
return {num:response[0]['num'],status:response[0]['status'],id:response[0]['id']}
}
})
}
}
module.exports = homeService
home的model模型文件
const model = require('../../index');
const utilsTool = require('../../../utils/utils');
class Index extends model{
static dealUid(uid){
return new Promise((resolve,reject)=>{
let startTime = utilsTool.curStartTime()/1000;
let endTime = utilsTool.curEndTime()/1000;
let sql = `SELECT num,status,id FROM g_reservation WHERE user_id=? AND status=1 AND reservation_time > ${startTime} AND reservation_time < ${endTime}`;
this.query(sql,[uid]).then(res=>{
resolve(res);
}).catch(err=>{
console.log(`错误信息:${err.message}`);
reject(err);
})
})
}
}
module.exports = Index;
model.js 数据模型文件
const mysql = require("mysql"),
config = require("../utils/config")
class Model{
//连接对象静态属性--静态属性是与类创建同时生成的和同时销毁
static conn = null;
constructor() {
}
//链接数据库静态方法
static connection(){
let host = config.baseConfig.host;
let user = config.baseConfig.user;
let password = config.baseConfig.password;
let database = config.baseConfig.database;
Model.conn = mysql.createConnection({host,user,password,database})
Model.conn.connect((err)=>{
if(err){
console.log(`数据库连接失败:${err.message}`);
}
})
console.log(`数据库连接成功`);
}
//关闭链接
static close(){
if(Model.conn !=null){
Model.conn.end()
}
}
/**
* 数据库的操作--开启事务
* @param sql 执行的操作语句
* @param params 给sql语句的占位符进行赋值的参数数组
* @returns {Promise<unknown>}
*/
static query(sql,params=[]){
return new Promise((resolve,reject)=>{
this.connection();
//开启事务
Model.conn.beginTransaction( err => {
if(err) {
resolve('开启事务失败')
} else {
Model.conn.query(sql,params,(err,res)=>{
if(err){
return Model.conn.rollback(() => {
console.log('操作数据失败,进行回滚')
reject(err)
})
}else{
Model.conn.commit((error) => {
if(error) {
console.log('事务提交失败',error)
reject(error)
}else{
resolve(res)
}
})
// Model.close();//释放连接
}
})
}
})
})
}
}
module.exports = Model;
最后请求的api路径为,这里的api是main.js那里设置,需要看我另外一篇创建main.js的文章:https://blog.csdn.net/qq_36977923/article/details/122531905
localhost:3000/api/test

node创建项目目录结构请看另外一篇文章
https://blog.csdn.net/qq_36977923/article/details/122826720?spm=1001.2014.3001.5501
欢迎加入前端全栈开发交流圈一起吹水聊天学习交流qq群:837051545
个人网站:沉默博客
如有错误,请多多指教。
如对你有帮助,给个赞吧。


892

被折叠的 条评论
为什么被折叠?



