美文网首页
暑假训练营总结

暑假训练营总结

作者: 静默的形学者 | 来源:发表于2017-08-24 21:44 被阅读249次

学习总结

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对象。

相关文章

  • 暑假训练营总结

    学习总结 express学习 对数据库sqlite链接和操作 1,连接数据库: ·引用orm ·建立与数据库的连接...

  • 暑假计划训练营总结

    今天在老师们的建议下,花10分钟和娃一起做了个复盘,原先我只感觉娃这个暑假表现不错,今天一复盘,还是很吃惊。这个...

  • 暑假总结

    在这个漫长的两个月的暑假中我进步了不少: 语文:在语文方面我想我进步最大的就是读书了吧,以前读书我都是特别快的而且...

  • 暑假总结

    秋风送爽,丹桂飘香,快乐的暑假就要结束了,那这个暑假,我都做了些什么呢? 我制定了属于自己的暑假规...

  • 暑假总结

    这个暑假,我过的很充实,感觉过的特别快。 英语:伴鱼我读的不是很多,主要在学别的内容,收获很大,会...

  • 暑假总结

    在这个暑假我明白了一件事,我可以和大家一起分享,有一件事情让我很有感受。 在一天晚上,我想睡大床,因为我睡小床,我...

  • 暑假总结

    这个暑假我过得既充实又饱满,因为我把一整篇西游记都看完了,而且我还去考了瑜伽教练证、去了英国留学,还经历了一段...

  • 暑假总结

    暑假就快结束了,我也应该。总结一下,我这个暑假去过的地方,干过的一些事情,首先,这个暑假我们是,一路向西北方...

  • 暑假总结

    再过几天就要开学了,我心里非常的期待这个新学期的到来,可以跟多日不见的好朋友一起玩耍,可以跟我敬爱的老师们学...

  • 暑假总结

    今天是八月三十号,离上学还有三天的时间。让我汇报一下我三年级的暑假总结。 首先,让我介绍一下我的暑假运动,我暑假参...

网友评论

      本文标题:暑假训练营总结

      本文链接:https://www.haomeiwen.com/subject/obhydxtx.html