koa2 开发后台系统😔

前言

  • 稍微具备nodejs,koa2,js,es6,es8 基础

  • typescript 集成到项目中,执行命令前先构建 tsc && node

mongoDB 的安装与入门使用

- 普通软件安装
- 添加bin 路径到path 环境变量
- 方案1:手动启动服务  D:\Program Files\MongoDB\Server\4.0\bin>mongod  --dbpath D:\\mongoDBData\db 路径不能有空格,会中断读取
- 方案2:mongod --dbpath D:\MongoDB\data --logpath D:\MongoDB\log\MongoDB.log --logappend --serviceName MongoDB --auth --install  注册为服务 net start MongoDB 启动
- 测试:http://localhost:27017/

```
    mongod --auth --port 27017 --dbpath /var/lib/mongodb 命令行启动服务(路径换成自己的)
    
    //增加一个用户,具备操作所有数据库的权限,其他角色请查阅资料
    mongo //进入mongo 命令行 
    use admin
    db.createUser(
    {
        user: "root",
        pwd: "123456",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
    }
    )

    use admin
    db.auth("myUserAdmin", "abc123" )

    mongo --port 27017 -u "root" --authenticationDatabase "admin" -p  如果直接进入,很多操作没权限

    //代码连接时需要注明admin 库,否者认证不通过。(花了我半天找原因)
    mongodb://root:123456@localhost:27017/coffee?authSource=admin 通过admin 库验证权限
```

官网文档

菜鸟教程

关系型

优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型

缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

非关系型数据库的分类和比较:
1、文档型
2、key-value型
3、列式数据库
4、图形数据库

项目结构

typescript 的认识

缺点:

  1. 上手难度比java 大,java 由下而上每个类型都是固定的,所以上层写法都是固定的,而js 不具备这点
  2. 很多第三方库也都是根据js 实现,对typescript 并没有多少示例导致初学者用typescript 第三方库不知道怎么写,例如 只参考 mongoose 官网,写不出来typescript
  3. 集成第三方框架很难搞,集成node 还没搞定

优点: 对维护,代码阅读确实有好处

Redis

一个key-value 存储系统,支持字符串,set,zset,hash,list

上次更新: 2019-11-27 15:50:07