前端路线--Nodejs(day04)

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值