diff --git "a/\350\265\226\350\231\271\351\234\226/20220322cookei/config/db.js" "b/\350\265\226\350\231\271\351\234\226/20220322cookei/config/db.js" new file mode 100644 index 0000000000000000000000000000000000000000..e1b143475ee09e95e6de0637d7af3fac6d05c55e --- /dev/null +++ "b/\350\265\226\350\231\271\351\234\226/20220322cookei/config/db.js" @@ -0,0 +1,18 @@ +let dbconfig = { + + host: '127.0.0.1', + user: 'root', + password: '123456', + database: 'yiqing', + port: '3306' + +} +module.exports = dbconfig; + +//dbconfig.key(); + +// json 非常重要!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +// 其实它很单纯,看到 { 开头 }结尾就是json ,它是 key val 形式 ,key 就是 类型数组的键名,value 是对应的值 + +// value 不限定类型 \ No newline at end of file diff --git "a/\350\265\226\350\231\271\351\234\226/20220322cookei/home/.keep" "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/.keep" "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/BaseController.js" "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/BaseController.js" new file mode 100644 index 0000000000000000000000000000000000000000..66d265e4dbefd72703b5274ae8b6b275183c87ad --- /dev/null +++ "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/BaseController.js" @@ -0,0 +1,20 @@ + +class BaseController { + + constructor(req, res, nunjucks) { + + this.req = req; + this.res = res; + this.nunjucks = nunjucks; + this.nunjucks.configure('./home/html', { autoescape: true });//配置模板的目录 + + } + + display(path,data){ + return this.nunjucks.render(path,data); + } + + +} + +module.exports = BaseController; \ No newline at end of file diff --git "a/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/IndexController.js" "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/IndexController.js" new file mode 100644 index 0000000000000000000000000000000000000000..57d9af51225f4934757ba33f17176b678f6958aa --- /dev/null +++ "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/IndexController.js" @@ -0,0 +1,119 @@ +const BaseController = require("./BaseController"); +let mysql = require("../../model/Base"); + +class IndexController extends BaseController { + + + async index() { + + let mysqlObj = new mysql(); + let date = this.req.query['date']; + //console.log('date-----'+date); + let sql = 'select * from number where date=?'; + //console.log(res); + try { + let result = await mysqlObj.query(sql, date);//等待数据的返回,但是线程可以干别的事情,线程我们就理解为饭店的服务员, + //node只能请得起一个服务员, await + promise 表示,这一段代码需要同步(服务员招待了客户, + //客户告诉服务器,我自己来,你忙别的) 如果说这块是阻塞的,那请求2次,5*2 =10 + //如果不是阻塞的 + //result 是啥类型?数组 + return this.display('index.html', { data: result,title:'我是index11111111' }) + } catch (err) { + console.log(err); + } + + } + + async detail() { + + let mysqlObj = new mysql(); + let date = this.req.query['date']; + //console.log('date-----'+date); + let sql = 'select * from number where date=?'; + //console.log(res); + try { + let result = await mysqlObj.query(sql, date);//等待数据的返回,但是线程可以干别的事情,线程我们就理解为饭店的服务员, + //node只能请得起一个服务员, await + promise 表示,这一段代码需要同步(服务员招待了客户, + //客户告诉服务器,我自己来,你忙别的) 如果说这块是阻塞的,那请求2次,5*2 =10 + //如果不是阻塞的 + //result 是啥类型?数组 + return this.display('detail.html', { data: result }) + } catch (err) { + console.log(err); + } + + } + + + diji() { + + console.log("盖地基"); + + } + + zhuzi() { + + console.log("盖柱子"); + + } + + qizhuang() { + + console.log("砌砖"); + + } + + quchunishuijiang() { + console.log(this.nishuijiang); + + } + + + +} +module.exports = IndexController; + +// let obj = new IndexController('李四');//开始去搭积木,比方说我想搭建个小房子 ,new 就表示 具体要做个工程了 +// // 类是不限制构建次数 +// obj.diji(); +// obj.zhuzi(); +// obj.qizhuang(); +// obj.quchunishuijiang(); + +// let obj2 = new IndexController('张三');//我们每次项目对象正常我们目的是不一样的 +// //this就表示每次构建的这个对象 +// obj2.quchunishuijiang(); + +// console.log(obj==obj2) + + +/** + * 回顾 class java es6 + * + * 面向对象编程三大特点:继承,封装,多态(方法的重写) + * + * 封装: + * 继承:extends 需要继承 + * + * + * + * + * class 中文翻译过来 班级 在编程里面叫 类,我们就按班级理解 + * + * 班级里有很多成员,单元可以有一个,元素 在js 里面就是 函数(js class 里面不写function 就是函数名与 {} , + * + * 在class 里面就不叫函数了,就叫 方法),和属性() + * + * class 的使用 , new 加一个class 名称,我们可以理解为, class 就是一堆的积木,里面有 圆柱体,有长方体.....(就是方法),但是我们积木 + * + * 没有构建成具体的建筑. + * + * + * class :元素 + * 1 函数,不用function 去标识,而且在类里面不叫函数了,叫方法 + * 2 属性 就理解成变量,跟普通变量相对多个 this + * + * + * + */ + diff --git "a/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/UserController.js" "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/UserController.js" new file mode 100644 index 0000000000000000000000000000000000000000..fca55a7c31fc85ab085fc7558d5da380a8edf9a1 --- /dev/null +++ "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/UserController.js" @@ -0,0 +1,47 @@ +const BaseController = require("./BaseController"); +const UserModel = require("../../model/UserModel"); +const EncAndDec = require("../../untis/EecAndDec"); +let mysql=require("mysql") +class UserController extends BaseController { + async login() { + return this.display("login.html"); + } + async userReg(){ + + return this.display("userReg.html"); + } + async handleReg(){ + + + let name = this.req.post['name']; + let password =EncAndDec.md5(this.req.post['password']); + let sql="INSERT into user(name,password)VALUES('"+name+"' ,'"+password+"')"; + let userModel = new UserModel(); + let userList=await userModel.query(sql,[name,password]); + let userInfo={}; + if(userList.length>0){ + userInfo = userList[0]; + this.res.session = JSON.stringify(userInfo); + } + console.log(name); + console.log(password) + return this.display("login.html"); + } + async logins(){ + + return this.display("dlu.html"); + } + + async userList(){ + let user = new UserModel(); + try{ + let userList = await user.select(); + return JSON.stringify(userList); + + }catch(err){ + console.log(err); + } + } + +} +module.exports = UserController; \ No newline at end of file diff --git "a/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/index.js" "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..fb69ae86016b681a654ce9e296d5e5e183c54bbd --- /dev/null +++ "b/\350\265\226\350\231\271\351\234\226/20220322cookei/home/controller/index.js" @@ -0,0 +1,79 @@ +/** + * 在mvc 中,controller 是指挥者者,他指挥着数据获取与模板的渲染 + * + */ + let fs = require("fs"); +let index={ + + + index:async function(req,res){ + let mysql = require("../../model/base"); + let date = req.query['date']; + //console.log('date-----'+date); + let sql = 'select * from number where date=?'; + //console.log(res); + let result= await mysql.query(sql,date,res);//等待数据的返回,但是线程可以干别的事情,线程我们就理解为饭店的服务员, + //node只能请得起一个服务员, await + promise 表示,这一段代码需要同步(服务员招待了客户, + //客户告诉服务器,我自己来,你忙别的) 如果说这块是阻塞的,那请求2次,5*2 =10 + //如果不是阻塞的 + + console.log(result); + let html=''; + for (let val in result) { + html += '