学习总结
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时,表示查找所有数据。
引用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问题
前端学习
对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函数详解:
有四个参数
- url:提交的后台路径
- data:发送的键值对
- 回调函数:有两个参数,返回的数据和请求状态。
- 服务器返回内容的格式
post函数详解:
有四个参数
和get方法类似
jquery的$.getScript()方法:
$.getScript("",function(){})
这个方法有两个参数
- url:请求的js文件目录。
- 回调函数。
这个方法一经执行,立即执行请求的js文件中的代码,在回掉函数中可以调用请求的js文件中的函数。
jquery的$.getJSON()方法:
$.getJSON(""function(data){})
- url:请求的json文件目录
- 回调函数,有一个参数data,是一个json对象。