//图书价格小于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);
}
);
717_mongodb_更新文档
发表于
分类于
nodejs
//更新文档,更新一条
// 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);
});
717_mongodb_删除文档
发表于
分类于
nodejs
//删除一条
// 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);
});
717_mongodb_字段验证
发表于
分类于
nodejs
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,
});
717_mongodb_字段值类型
发表于
分类于
nodejs

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("连接关闭");
});
717_mongodb_创建文档
发表于
分类于
nodejs
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("连接关闭");
});
717_mongodb_连接数据库
发表于
分类于
nodejs
//安装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("连接关闭");
}); //设置连接关闭的回调
716_express框架总结
发表于
分类于
nodejs

716_express框架_文件上传和保存
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>
716_express框架_express中使用ejs
发表于
分类于
nodejs
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>