至关于此html文档 html
const 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()方法中,第一个参数表示文件的路径;第二个参数表示匹配的模板引擎类型,此处为pugjava
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中es6
在liangsheng数据库位置下:mongodb
更新文档:当修改的属性在文档中没有时,会建立数据库
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中
复制代码
存数据:npm
//要插入集合的文档/数据
const obj1 = {
name : "bbb",
age : 18,
sex : "男"
};
//插入数据
const d1 = new User(obj1);
d1.save((err, data) => {
console.log(data);
});
//save返回promise对象
复制代码
删除数据: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);
});
复制代码