暑假训练营总结

学习总结

express学习

对数据库sqlite链接和操作

1,连接数据库

·引用orm

let orm=require('orm');

·建立与数据库的连接

app.use(orm.express("sqlite:public/CodingGirlsClub.db")

·建立与数据库表的映射

app.use(orm.express("sqlite:public/CodingGirlsClub.db",{//引用位于根目录/public中的sqlite数据库。
define:function (db,models,next) {  
    models.Position=db.define("POSITIONS",{  //基于数据库中的POSITIONS表,在后台定义一个名为Position的表
        id:{type:'number'},  //这里的键值对要和数据库中的键值对一一对应。
        title:{type:'text'},
        company:{type:'text'},
        description:{type:'text'},
        applyMethod:{type:'text'},
        expiryDate:{type:'text'},
        category:{type:'text'},
        jobType:{type:'text'},
        tags:{type:'text'},
        city:{type:'text'},
        country:{type:'text'},
        condition:{type:'text'},
        owner:{type:'text'},
        publishTime:{type:'text'},
        invalidTime:{type:'text'}
    });
    models.User=db.define("USERS",{  //基于USERS表,在后台定义Users表
        id:{type:'number'},
        usrName:{type:'text'},
        usrPassword:{type:'text'},
        usrEmail:{type:'text'},
        usrCompanyName:{type:'text'},
        usrCompanyAddress:{type:'text'},
        usrCompanyProfession:{type:'text'}
    });
    next();
}

}));

2,利用orm对数据库的操作

·获得数据库数据的数量:count方法

req.models.Position.count(null,function(err,count){//引用count得到数据库数据条数});

·根据某一键值对寻找数据(条):find方法

req.models.Position.find({category:getCategory},{jobType:getJobType},function (err,allPositions) {  //models就相当于后台中的数据库,Position就相当于表。
        res.json(allPositions);
    });

find方法有两个参数:

a.查询条件,
b.回调函数,回调函数有两个参数,err和匹配的数据(一个对象数组),在回调函数中可以利用res.json()发送匹配到的数据

·不完全匹配查询:orm.like
(“%”+匹配项+“%”);所有包含匹配项的数据都会被返回。

req.models.Position.find({or:[{title: orm.like("%"+getRequire+"%")},{company: orm.like("%"+getRequire+"%")},
        {category: orm.like("%"+getRequire+"%")},{city: orm.like("%"+getRequire+"%")},{country: orm.like("%"+getRequire+"%")},
        {tags: orm.like("%"+getRequire+"%")},
        {jobType: orm.like("%"+getRequire+"%")}]},function (err,positions) {
        res.json(positions);
        //console.log(positions[0].id);
    });

//or:将逻辑运算符放到一系列条件前面,表示这些条件是按“或”来连接,默认是“与”。

·查询条件为null时,表示查找所有数据。

注:orm2的官方文档


引用node__modules中的文件

1,引用express

let express =require('express');

语法:require('模块');

2,一些其他的引用

let express =require('express');
let orm=require('orm');
let bodyparser=require("body-parser");
let mailer=require("./mailer");
let multer = require('multer');
let upload = multer();

静态文件的引用和路径问题

app.use(express.static('public'));

静态文件夹public中的文件对外公开,客户端可以自由的访问这些页面。

路由分配问题

app.get("路由",function(req,res){})
在浏览器访问该路由的时候执行回调函数,或者表单发送get请求的时候执行回调函数。

1,以get方式发送请求时,前端在?之前的路由要和后台路由一致,前端通过url内的键值对传值

2,以post方式发送请求时,前端和后台的路由一致,前端通过urlencoded或者formdata方式传值。

在利用formdata传值的时候要利用express的中间件multer,在路由和回掉函数中要加入upload.single()

app.post("/usrs/:emailId/positions",upload.single(),function(req,res){});

回调函数的req,res的用法

1,req.params:可以通过req.params.(命名路由的名称)。

2,req.query:一个对象,包含键值对存放的查询字符串参数

3,req.body:一个对象,包含post请求参数

1,res.send():向客户端发送响应,res.json()指定发送json格式的响应。

2,res.sendfile(path,[option],[callback])
path:__dirname+"路径"__dirname相当于根目录。

post方法解析formdata与urlencoded问题

express前后端post传值博客地址

前端学习

对dom的操作

1,查找元素:

document.getElementById("")//根据Id查找元素
document.getElementsByTagname("")//根据标签名字来查找元素

可以用——元素.elememts[i]来引用该元素的第i个子元素。

2,创建元素:

var div = document.createElement("标签名")

3,添加元素:

document.body.appendChild("div");

给表单提交事件添加监听

document.getElementById("form1").addEventListener("submit",function(event){
    event.preventDefault();
    //阻止了默认事件,执行自定义事件
})

利用原生的ajax请求与获得数据

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
    if(xhr.readyState === 4){
        if((xhr.status>=200&&xhr.status<300)||xhr===304){
            alert(xhr.responseText);
        }
        else {
            alert("error");
        }
    }
};
xhr.open("post",`/usrs/${emailId}/positions`,true);
xhr.send(data);

jquery对象与原生DOM对象相互转化

DOM对象转化为jquery对象:

var cr = document.getElememtById("cr");
var $cr = $(cr)

jquery对象转化为DOM对象:

var $cr = $("#cr");
var cr = $cr[0];

jquery向服务器发送get请求并得到值。

$(function(){
    $("#a").click(function(){
        $.get("sever.js",{
            username:ksj,
            userpass:ksjpass
        },function(data,textStatus){
            $("#a").html(data);
        })
    })
})

get函数详解:
有四个参数

  1. url:提交的后台路径
  2. data:发送的键值对
  3. 回调函数:有两个参数,返回的数据和请求状态。
  4. 服务器返回内容的格式

post函数详解:
有四个参数

和get方法类似

jquery的$.getScript()方法:

$.getScript("",function(){})

这个方法有两个参数

  1. url:请求的js文件目录。
  2. 回调函数。

这个方法一经执行,立即执行请求的js文件中的代码,在回掉函数中可以调用请求的js文件中的函数。

jquery的$.getJSON()方法:

$.getJSON(""function(data){})
  1. url:请求的json文件目录
  2. 回调函数,有一个参数data,是一个json对象。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容