day04-01连接数据库
//1.引入模块
let mongoose=require('mongoose');
//2.连接数据库
mongoose.connect('mongodb://127.0.0.1:27017/FirstGroup').then(()=>{
console.log('数据库连接成功');
}).catch(()=>{
console.log(err)
});
day04-02-第一种插入数据形式
// cmd下载使用mongoose模块 cnpm install mongoose --save
// 1、引入模块
let mongoose = require("mongoose");
// 2、连接数据库
// mongoose.connect("数据库路径") 返回:promise对象
mongoose.connect("mongodb://127.0.0.1:27017/student").then(() => {
console.log("数据库连接成功");
}).catch(err => {
console.log(err);
})
// 3、创建一个集合规则
let userSchema = new mongoose.Schema({
username: String, //用户名
age: Number, //年龄
sex: String //性别
})
// 4、利用集合规则创建集合
let Users = mongoose.model("Users", userSchema)
// 5、向集合中添加数据
// 第一种插入数据形式
let users = new Users({
username: "二哥哥",
age: 28,
sex: "男"
})
users.save() //将集合文档插入到数据库中
day04-03-第二种插入数据形式
// 使用mongoose模块 cnpm install mongoose --save
// 1、引入模块
let mongoose = require("mongoose");
// mongoose.connect("数据库路径") //连接mongodb数据库
// 2、连接数据库
mongoose.connect("mongodb://127.0.0.1:27017/student").then(() => {
console.log("数据库连接成功");
}).catch(err => {
console.log(err);
})
// 3、创建一个集合规则
let userSchema = new mongoose.Schema({
username: String, //用户名
age: Number, //年龄
sex: String //性别
})
// 4、利用集合规则创建集合
let Users = mongoose.model("Users", userSchema)
// 5、向集合中添加数据
// 第二种插入数据形式
Users.create({
username: "好谷",
age: 8,
sex: "未知"
}).then(result => {
console.log(result);
}).catch(err => {
console.log(err);
})
day04-04-查询数据
// 使用mongoose模块 cnpm install mongoose --save
// 1、引入模块
let mongoose = require("mongoose");
// mongoose.connect("数据库路径") //连接mongodb数据库
// 2、连接数据库
mongoose.connect("mongodb://127.0.0.1:27017/student").then(() => {
console.log("数据库连接成功");
}).catch(err => {
console.log(err);
})
// 3、创建一个集合规则
let userSchema = new mongoose.Schema({
username: String, //用户名
age: Number, //年龄
sex: String //性别
})
// 4、利用集合规则创建集合
let Users = mongoose.model("Users", userSchema)
// 5、查询数据
// 查询Users集合中的所有数据
// Users.find().then(result => {
// console.log(result);
// })
// 查询age等于28 的数据
// Users.find({ age: 28 }).then(result => {
// console.log(result);
// })
// 查询age大于10 的数据
// Users.find({ age: { $gt: 10 } }).then(result => {
// console.log(result);
// })
// 查询数据按照age从小到大排序
// Users.find().sort({ age: 1 }).then(result => {
// console.log(result);
// })
Users.find().sort({ age: 1 }).skip(1).limit(1).then(result => {
console.log(result);
})
day04-05-更新数据
// 使用mongoose模块 cnpm install mongoose --save
// 1、引入模块
let mongoose = require("mongoose");
// mongoose.connect("数据库路径") //连接mongodb数据库
// 2、连接数据库
mongoose.connect("mongodb://127.0.0.1:27017/student").then(() => {
console.log("数据库连接成功");
}).catch(err => {
console.log(err);
})
// 3、创建一个集合规则
let userSchema = new mongoose.Schema({
username: String, //用户名
age: Number, //年龄
sex: String //性别
})
// 4、利用集合规则创建集合
let Users = mongoose.model("Users", userSchema)
// 5、更新数据
// Users.updateOne({ username: "二哥哥" }, { age: 38 }).then(result => {
// console.log(result);
// })
// updateMany(条件,更新的数据) 更新多条数据
Users.updateMany({}, { age: 99 }).then(result => {
console.log(result);
})
day04-06-删除数据
// 使用mongoose模块 cnpm install mongoose --save
// 1、引入模块
let mongoose = require("mongoose");
// mongoose.connect("数据库路径") //连接mongodb数据库
// 2、连接数据库
mongoose.connect("mongodb://127.0.0.1:27017/student").then(() => {
console.log("数据库连接成功");
}).catch(err => {
console.log(err);
})
// 3、创建一个集合规则
let userSchema = new mongoose.Schema({
username: String, //用户名
age: Number, //年龄
sex: String //性别
})
// 4、利用集合规则创建集合
let Users = mongoose.model("Users", userSchema)
// 5、删除数据
// 删除一条数据
// Users.findOneAndDelete({ username: "二哥哥" }).then(result => {
// console.log(result);
// })
Users.deleteMany({}).then(result => {
console.log(result);
})
day04-07-定义规则
let mongoose = require("mongoose"); //cnpm install mongoose --save
// 连接数据库
mongoose.connect("mongodb://127.0.0.1:27017/student").then(result => {
console.log("成功");
}).catch(err => {
console.log(err);
})
// 创建集合规则
let newsSchema = new mongoose.Schema({
title: {
type: String, //标题的类型
required: true, //必填项
minlength: 2, //最小长度
maxlength: 10, //最大长度
trim: true //去除首尾的空格
},
age: {
type: Number,
min: 18, //最小年龄
max: 100 //最大年龄
},
sex: {
type: String,
// 枚举 ["男","女","保密"]
enum: { //只能选数组中的数据
values: ["男", "女", "保密"],
message: "性别要合法哦"
}
}
})
// 根据集合规则创建集合
let News = mongoose.model("News", newsSchema)
News.create({
title: "河南新冠清零",
age: 66,
sex: "男"
}).then(result => {
console.log(result);
}).catch(err => {
console.log(err);
})
day04-08-案例–从页面申请数据库响应
const http = require("http");
const {News} = require("./module/News.js")
const app = http.createServer((req, res) => {
// http://localhost:3000/add
// http://localhost:3000/list
// console.log(req.url); // /add
if (req.url == "/list") {
News.find().then(result => {
// console.log(result) result是一个数组,里面是对象
// console.log(Array.isArray(result))
//遍历该数组将里面的内容给str
let str = ""
result.forEach(item => {
str += `<li>${item.title}---${item.age}---${item.sex}</li>`
})
let oHtml = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<ul>
${str}
</ul>
</body>
</html>`
//将oHtml渲染在页面
res.write(oHtml)
res.end()
})
}
})
app.listen(3000, () => {
console.log("3000running");
})
模块里的News
let mongoose = require("mongoose"); //cnpm install mongoose --save
// 连接数据库
mongoose.connect("mongodb://127.0.0.1:27017/student").then(result => {
console.log("成功");
}).catch(err => {
console.log(err);
})
// 创建集合规则
let newsSchema = new mongoose.Schema({
title: {
type: String, //标题的类型
required: true, //必填项
minlength: 2, //最小长度
maxlength: 10, //最大长度
trim: true //去除首尾的空格
},
age: {
type: Number,
min: 18, //最小年龄
max: 100 //最大年龄
},
sex: {
type: String,
// 枚举 ["男","女","保密"]
enum: { //只能选数组中的数据
values: ["男", "女", "保密"],
message: "性别要合法哦"
}
}
})
// 根据集合规则创建集合
let News = mongoose.model("News", newsSchema)
// 暴露News
module.exports = {
News
}
day04-09-拖拽
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul,
li {
list-style: none;
}
.box {
width: 100px;
height: 100px;
background: red;
cursor: pointer;
}
.container {
width: 500px;
height: 500px;
border: 2px solid #ccc;
position: absolute;
right: 10px;
}
</style>
</head>
<body>
<!-- 给一个元素添加一个draggable="true"那么这个元素就变成了可拖拽的元素 -->
<div class="box" draggable="true"></div>
<div class="container"></div>
<script>
let oBox = document.querySelector(".box");
let oContainer = document.querySelector(".container")
oBox.ondragstart = function () {
// console.log("ondragstart开始");
}
oBox.ondrag = function () {
// console.log("ondrag拖拽的过程");
}
oBox.ondragend = function () {
// console.log("ondragend拖拽结束");
}
// 拖拽指的是鼠标点击源对象后一直移动对象不松手,一但松手即释放了
// drag 拖拽
// drop 释放
// 拖拽的源对象上事件
// ondragstart 开始
// ondrag 拖拽的过程
// ondragend 拖拽结束
// 拖拽到目标上方的事件
// ondragenter 进入目标的事件
// ondragover 在目标上方悬停
// ondragleave 离开目标
// ondrop 释放
oContainer.ondragenter = function () {
// console.log("ondragenter 进入目标的事件");
}
oContainer.ondragover = function (e) {
// console.log("ondragover 在目标上方悬停");
e.preventDefault() //阻止默认行为
}
oContainer.ondragleave = function () {
console.log("ondragleave 离开目标");
}
oContainer.ondrop = function () {
console.log("ondrop 释放");
oContainer.appendChild(oBox)
}
</script>
</body>
</html>
案例–拖拽上传
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul,
li {
list-style: none;
}
.box {
width: 300px;
height: 300px;
border: 1px dashed #ccc;
margin: 50px auto;
border-radius: 10px;
position: relative;
}
.box:hover {
border-color: blue;
}
.box span {
width: 300px;
height: 300px;
position: absolute;
top: 0;
left: 0;
z-index: 99;
text-align: center;
line-height: 300px;
font-size: 30px;
color: #999;
}
.box:hover span {
color: #666;
}
#list li {
width: 200px;
height: 200px;
border: 1px dashed #ccc;
margin: 50px auto;
border-radius: 10px;
float: left;
overflow: hidden;
}
#list li img {
width: 200px;
height: 200px;
}
</style>
</head>
<body>
<div class="box">
<span>+</span>
</div>
<ul id="list"></ul>
<script>
// 获取box
var oBox = document.querySelector(".box");
var oList = document.getElementById("list")
oBox.ondragenter = function () {
this.innerHTML = "进入目标了"
}
oBox.ondragover = function (e) {
e.preventDefault()
}
oBox.ondrop = function (e) {
e.preventDefault()
console.log(e.dataTransfer.files);
let fileList = e.dataTransfer.files
for (var i = 0; i < fileList.length; i++) {
uploadFn(fileList[i])
}
}
// 上传文件的函数
function uploadFn(file) {
console.log(file);
// 创建一个读取文件的对象
var reader = new FileReader()
// DataURL形式读取文件
reader.readAsDataURL(file)
reader.onload = function () {
var li = document.createElement("li")
var img = new Image() //<img>
console.log(img);
img.src = reader.result
li.appendChild(img) //将图片插入li中
oList.appendChild(li) //将li插入ul中
}
}
</script>
</body>
</html>
案例–拖拽小盒子2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul,
li {
list-style: none;
}
.box {
width: 100px;
height: 100px;
background: red;
cursor: pointer;
}
.container1 {
width: 500px;
height: 500px;
border: 2px solid #ccc;
position: absolute;
left: 10px;
}
.container2 {
width: 500px;
height: 500px;
border: 2px solid #ccc;
position: absolute;
right: 10px;
}
</style>
</head>
<body>
<!-- 给一个元素添加一个draggable="true"那么这个元素就变成了可拖拽的元素 -->
<div class="container1">
<div class="box" draggable="true" id="box"></div>
</div>
<div class="container2"></div>
<script>
var oContainer1 = document.querySelector(".container1")
var oContainer2 = document.querySelector(".container2")
document.ondragstart = function (e) {
console.log(e.target); //拖动的那个元素 <div class="box" draggable="true" id="box"></div>
console.log(e.dataTransfer);
console.log("开始");
//获得拖动元素的信息并存储在aa
//e.dataTransfer.setData(数据名,数据) 相当于node中的Bus Emmiter
e.dataTransfer.setData("aa", e.target.id)
}
document.ondragenter = function () {
console.log("进入目标了");
}
document.ondragover = function (e) {
e.preventDefault()
}
document.ondrop = function (e) {
console.log(e.dataTransfer.getData("aa"));
var aa = e.dataTransfer.getData("aa") //"box"
var oBox = document.getElementById(aa)
console.log(e.target);
console.log(oBox);
e.target.appendChild(oBox)
}
</script>
</body>
</html>