至關於此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);
});
複製代碼