diff --git "a/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/.keep" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/config/db.js" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/config/db.js" new file mode 100644 index 0000000000000000000000000000000000000000..e1b143475ee09e95e6de0637d7af3fac6d05c55e --- /dev/null +++ "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/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/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/cookie.md" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/cookie.md" new file mode 100644 index 0000000000000000000000000000000000000000..4ee22107284d52c2b3e07cf533259ca48d1b6a7f --- /dev/null +++ "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/cookie.md" @@ -0,0 +1,20 @@ +# 作业回顾,写一个登陆页面,实现注册密码保存为md5 + + +# 前台数据怎么提交到后台?form 表单中的 action就是可以指向后端的地址 + +# get 和 post 区别? 从传递参数区分:get 通过 url post 参数 todo ,数据大小区分:url 有没长度限制?有长度限制,post没有大小限制 + +# 怎么去获取post数据? 在node web服务器上,post传递它是以流的方式传递 + +# http协议:特点 无状态 短连接 多媒体, 从清除 码云的cookie 码云就没有登录状态可知 cookie是实现状态记录的方式之一 + +# 首先什么是cookie:中文编译 小饼干,曲奇,从我们清除码云的行为可知道,cookie 是存在哪的数据?存储在客户端的数据,以域名为区分 + +# todo 三四节课,去看看cookie的其它介绍 + +# node 如何获取与写入cookie,首先实现 cookie的写入,服务端的cookie的写入,res.setHeader('Set-Cookie',[数组]) 数组的元素字符串用=相连 + +# 如 res.setHeader('Set-Cookie',['demo=123456','demo2=78910']); + +# 作业:把用户注册页完善下,继续实现登录逻辑 \ No newline at end of file diff --git "a/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/.keep" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/.keep" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/BaseController.js" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/BaseController.js" new file mode 100644 index 0000000000000000000000000000000000000000..66d265e4dbefd72703b5274ae8b6b275183c87ad --- /dev/null +++ "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/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/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/IndexController.js" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/IndexController.js" new file mode 100644 index 0000000000000000000000000000000000000000..57d9af51225f4934757ba33f17176b678f6958aa --- /dev/null +++ "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/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/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/UserController.js" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/UserController.js" new file mode 100644 index 0000000000000000000000000000000000000000..abf70bc0d7173daea927c5fe7fd09c5902f1338c --- /dev/null +++ "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/UserController.js" @@ -0,0 +1,51 @@ +const BaseController = require("./BaseController"); + +const UserModel = require("../../model/UserModel"); +const EncAndDec = require("../../untis/EecAndDec"); + + +class UserController extends BaseController { + + async login() { + + return this.display("login.html"); + } + + /** + * 前台用户注册页面 + * @returns + */ + async userReg(){ + + return this.display("userReg.html"); + } + + /** + * + * @returns 用户注册后端逻辑 + */ + async handleReg(){ + + //let name = this.req.post['name']; + //let password = EncAndDec.md5(this.req.post['password']); + //写入到数据库 你们完善 TODO + return this.display("userReg.html"); + } + + async userList(){ + + let user = new UserModel(); + + try{ + let userList = await user.select(); + return JSON.stringify(userList);//就是把对象转成json格式 + + }catch(err){ + console.log(err); + } + + + } + +} +module.exports = UserController; \ No newline at end of file diff --git "a/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/index.js" "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/home/controller/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..fb69ae86016b681a654ce9e296d5e5e183c54bbd --- /dev/null +++ "b/\346\236\227\350\276\211\346\273\241/3.23/mvc\347\254\254\344\270\203\350\257\276\351\241\271\347\233\256cookie\344\270\216session/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 += '