0%

//图书价格小于20
 //   BookModel.find({ price: { $lt: 20 } }, (err, data) => {
 //     if (err) {
 //       console.log("失败");
 //       return;
 //     }
 //     console.log(data);
 //   });

 //曹雪芹或者余华的书
 BookModel.find(
   { $or: [{ author: "曹雪芹" }, { author: "余华" }] },
   (err, data) => {
     if (err) {
       console.log("失败");
       return;
     }
     console.log(data);
   }
 );

//更新文档,更新一条
  //   BookModel.updateOne({ name: "红楼梦" }, { price: 9.9 }, (err, data) => {
  //     //判断
  //     if (err) {
  //       console.log("失败");
  //       return;
  //     }
  //     //输出data
  //     console.log(data);
  //   });

  //更新文档,更新多条
  BookModel.updateMany({ author: "余华" }, { is_hot: false }, (err, data) => {
    //判断
    if (err) {
      console.log("失败");
      return;
    }
    //输出data
    console.log(data);
  });

//删除一条
//   BookModel.deleteOne({ name: "西游记" }, (err, data) => {
//     //判断
//     if (err) {
//       console.log("失败");
//       return;
//     }
//     //输出data
//     console.log(data);
//   });

//批量删除
//删除is_hot为false的值
BookModel.deleteMany({ is_hot: false }, (err, data) => {
  //判断
  if (err) {
    console.log("失败");
    return;
  }
  //输出data
  console.log(data);
});

mongoose.connection.once("open", () => {
  console.log("连接成功");

  //创建文档的结构对象
  //设置集合中文档的属性以及属性值的类型
  let BookSchema = new mongoose.Schema({
    //判断插入到数据库中的值是否合法
    name: {
      type: String,
      require: true, //设置为必填项
      unique: true, //独一无二的
    },
    author: {
      type: String,
      default: "匿名", //设置默认值
      enum: ["无尘嗯", "吴承恩"], //要求填入的值必须在给定的值当中
    },
    price: Number,
  });

const mongoose = require("mongoose");

mongoose.set("strictQuery", true);
//连接mogoose服务                           数据库的名称
mongoose.connect("mongodb://127.0.0.1:27017/bilibili");

//设置回调
//once事件回调只执行一次

//设置连接成功的回调
mongoose.connection.once("open", () => {
  console.log("连接成功");

  //创建文档的结构对象
  //设置集合中文档的属性以及属性值的类型
  let BookSchema = new mongoose.Schema({
    name: String,
    author: String,
    price: Number,
    is_hot: Boolean,
    tags: Array,
    pub_time: Date,
    test: mongoose.Schema.Types.Mixed, //任意类型
  });

  //新增模型对象,对文档操作的封装对象
  let BookModel = mongoose.model("books", BookSchema);

  //新增
  BookModel.create(
    {
      name: "西游记",
      author: "无尘嗯",
      price: 19.9,
      is_hot: true,
      tags: ["html", "css", "js"],
      pub_time: new Date(),
    },
    (err, data) => {
      //判断是否有错误
      if (err) {
        console.log(err);
        return;
      }
      //如果没有错误则输出插入后的文档对象
      console.log(data);
      //关闭数据库连接
      mongoose.disconnect();
    }
  );
});

//设置连接错误的回调
mongoose.connection.once("error", () => {
  console.log("连接失败");
});

//设置连接关闭的回调
mongoose.connection.once("close", () => {
  console.log("连接关闭");
});

const mongoose = require("mongoose");

mongoose.set("strictQuery", true);
//连接mogoose服务                           数据库的名称
mongoose.connect("mongodb://127.0.0.1:27017/bilibili");

//设置回调
//once事件回调只执行一次

//设置连接成功的回调
mongoose.connection.once("open", () => {
  console.log("连接成功");

  //创建文档的结构对象
  //设置集合中文档的属性以及属性值的类型
  let BookSchema = new mongoose.Schema({
    name: String,
    author: String,
    price: Number,
  });

  //新增模型对象,对文档操作的封装对象
  let BookModel = mongoose.model("books", BookSchema);

  //新增
  BookModel.create(
    {
      name: "西游记",
      author: "无尘嗯",
      price: 19.9,
    },
    (err, data) => {
      //判断是否有错误
      if (err) {
        console.log(err);
        return;
      }
      //如果没有错误则输出插入后的文档对象
      console.log(data);
      //关闭数据库连接
      mongoose.disconnect();
    }
  );
});

//设置连接错误的回调
mongoose.connection.once("error", () => {
  console.log("连接失败");
});

//设置连接关闭的回调
mongoose.connection.once("close", () => {
  console.log("连接关闭");
});

//安装mongoose
//导入mongoose
const mongoose = require("mongoose");

//连接mogoose服务                           数据库的名称
mongoose.connect("mongodb://127.0.0.1:27017/bilibili");

//设置回调
//once事件回调只执行一次
mongoose.connection.once("open", () => {
  console.log("连接成功");
}); //设置连接成功的回调

mongoose.connection.once("error", () => {
  console.log("连接失败");
}); //设置连接错误的回调

mongoose.connection.once("close", () => {
  console.log("连接关闭");
}); //设置连接关闭的回调

var express = require('express');
var router = express.Router();
//导入
const formidable = require('formidable');

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

//显示网页的 (表单)
router.get('/portrait', (req, res) => {
  res.render('portrait');
});

//处理文件上传
router.post('/portrait', (req, res) => {
  //创建 form 对象
  const form = formidable({ 
    multiples: true ,
    //设置上传文件的保存目录
    uploadDir: __dirname + '/../public/images',
    //保持文件后缀
    keepExtensions: true
  });
  //解析请求报文
  form.parse(req, (err, fields, files) => {
    if (err) {
      next(err);
      return;
    }
    // console.log(fields);// text  radio  checkbox  select
    // console.log(files); // file
    
    //服务器保存该图片的访问 URL
    // /images/8ad3d5e36012212ba7642c000.jpg
    let url = '/images/' + files.portrait.newFilename;// 将来将此数据保存在数据库中
    
    res.send(url);
  });
});

module.exports = router;
<!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>文件上传</title>
</head>
<body>
  <h2>文件上传</h2>
  <hr>
  <!--                                            文件上传的必需的属性             -->
  <form action="/portrait" method="post" enctype="multipart/form-data">
    用户名: <input type="text" name="username"><br>
    头像: <input type="file" name="portrait"><br>
    <hr>
    <button>点击提交</button>
  </form>
</body>
</html>

const express = require("express");
const path = require("path");
//创建应用对象
const app = express();

//设置模板引擎
app.set("view engine", "ejs");
//设置模板引擎文件存放位置
app.set("views", path.resolve(__dirname, "./views"));

//创建路由
app.get("/home", (req, res) => {
  let title = "我的";
  res.render("home", { title });
});

//监听端口,启动服务
app.listen(3000, () => {
  console.log("服务已经启动");
});
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h2><%=title%></h2>
    <h2>你好</h2>
  </body>
</html>