<node.js学习笔记(完)>pug,mongodb命令(之后是node的案例,一个博客)

1.pug
  1. 一个简单的pug文档

相当于此html文档

  1. koa-views模块:模板引擎模块,把pug注册到koa上
    a). 新建app.js
    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()方法中,第一个参数表示文件的路径;第二个参数表示匹配的模板引擎类型,此处为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.增删改查命令
  1. 启动服务端:mongod --dbpath "路径" :指定数据库数据位置

2. 启动客户端:mongo

3. 显示数据库: show dbs

4. 创建并进入子数据库(有的话直接进入): use liangsheng

5. 添加数据:db.liangsheng.insert({name:"sjl"})

6. 删库:db.dropDatabase()

在liangsheng数据库位置下:

  1. 创建集合名:db.createCollection("javaScript")
    第一个参数是集合名,第二个参数是大小(可不写)
  2. 显示库内所有集合名:show collections

9. 删除集合:db.javaScript.drop()

  1. 在集合里存数据:db.user.insert({name:"sjl"})
    可存入多条相同的数据,id值会不同

  1. 查看集合里所有文档:db.user.find()

更新文档:当修改的属性在文档中没有时,会创建

  1. 修改第一条属性:db.user.update({"name":"sjl"},{$set:{"name": "yl"}})

  1. 修改所有: db.user.update({"name":"sjl"},{$set:{"name": "yl"}},{multi:true})


3.连接数据库
  1. 下载包:mongoose:连接mongo数据库的包
    npm i mongoose -S
  2. 导入包:const mongoose = require("mongoose")
  3. 代码:
// 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);
  });
复制代码

转载于:https://juejin.im/post/5c18ac8c6fb9a04a03792639

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值