1.pug
- 一个简单的pug文档
相当于此html文档
- koa-views模块:模板引擎模块,把pug注册到koa上
a). 新建app.jsconst Koa = require("koa"); const views = require('koa-views'); //用来管理模板引擎 const {join} = require("path"); const koa = new Koa; //__dirname 当前所在文件的目录 koa.use(views(join(__dirname, 'views'), { extension : "pug" })); //用来处理路由请求的中间件 //render中两个参数 第一个为路径,第二个作为属性传到pug文件中的变量上 koa.use( async (ctx) => { await ctx.render("index", { bool : 1 }); }).listen(3000, () => { console.log("开始监听3000端口"); }); 复制代码
view()方法中,第一个参数表示文件的路径;第二个参数表示匹配的模板引擎类型,此处为pug
b). 新建index.pug
```
doctype html
html
head
meta(charset="UTF-8")
title sjl
body
div.box#wrap wrap内容
div(class = bool ? "sjl" : "yl") 简单pug文档
```
复制代码
在app.js文件中的bool的值,可以传递给index.pug中
2.mongodb数据库
1.增删改查命令
- 启动服务端:mongod --dbpath "路径" :指定数据库数据位置
在liangsheng数据库位置下:
- 创建集合名:db.createCollection("javaScript")
第一个参数是集合名,第二个参数是大小(可不写) - 显示库内所有集合名:show collections
- 在集合里存数据:db.user.insert({name:"sjl"})
可存入多条相同的数据,id值会不同
- 查看集合里所有文档:db.user.find()
更新文档:当修改的属性在文档中没有时,会创建
- 修改第一条属性:db.user.update({"name":"sjl"},{$set:{"name": "yl"}})
- 修改所有: db.user.update({"name":"sjl"},{$set:{"name": "yl"}},{multi:true})
3.连接数据库
- 下载包:mongoose:连接mongo数据库的包
npm i mongoose -S
- 导入包:
const mongoose = require("mongoose")
- 代码:
// mongoose 导入包
const mongoose = require("mongoose");
//连接数据库,返回一个实例
//第一个参数:数据库路径; 第二个参数:固定参数
const db = mongoose.createConnection(
"mongodb://localhost:27017/sjl",
{useNewUrlParser : true});
//用原生的es6的promise替换掉mongoose自定义的promise
mongoose.Promise = global.Promise;
//监听是否链接成功
db.on("error", () => {
console.log("sjl数据库链接失败");
});
db.on("open", () => {
console.log("sjl数据库链接成功");
});
// 规范数据的字段,得到Schema类
const Schema = mongoose.Schema;
//得到Schema实例,用来规范数据类型或者字段
//第一个参数:设置规范 ; 第二个参数:去掉版本号
const userSchema = new Schema({
name : String,
age : Number, //类型的构造函数
sex : String
},{
versionKey : false
});
//得到操控集合的对象 / 创建一个集合,返回一个构造函数
const User = db.model("user", userSchema, "user");
//注:model第三个参数表示插入集合的文档的集合,若不写,系统会新建users并存入users中
复制代码
存数据:
//要插入集合的文档/数据
const obj1 = {
name : "bbb",
age : 18,
sex : "男"
};
//插入数据
const d1 = new User(obj1);
d1.save((err, data) => {
console.log(data);
});
//save返回promise对象
复制代码
删除数据:
//删除最先查询的那条数据deleteOne
User.deleteOne({ name: "sjl" }, function (err) {
if (err) console.log(err);
});
//删除所有查询的那条数据deleteMany
User.deleteMany({ name: "sjl" }, function (err) {
if (err) console.log(err);
});
复制代码