MongoDB基础
MongoDB基础应用场景传统的关系型数据库(如MySQL),在数据操作的“三高”需求以及应对Web2.0的网站需求面前,显得力不从心。
解释:“三高”
High performance - 对数据库高并发读写的需求。
Huge Storage - 对海量数据的高效率存储和访问的需求。
High Scalability && High Availability-对数据库的高可扩展性和高可用性的需求。
具体应用场景举例:
社交场景,使用MongoDB存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。
游戏场景,使用MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问。
物流场景,使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。
视频直播,使用MongoDB存储用户信息、点赞互动信息等。
这些应用场景中,数据操作方面的共同特点是:
数据量大
写入操作频繁(都写都很频繁)
价值较低的数据,对事务性要求不高
问题:对于一些强事务性的业 ...
Next.js基础
Next.js基础
tailwind CSS基础
tailwind CSS基础
whistle代理的基本使用
在通常情况下,出现跨域问题是因为浏览器的同源策略(Same-Origin Policy)限制了从一个源(origin)发起的 HTTP 请求到另一个不同源的地址。为了解决这个问题,你可以使用 whistle 来设置代理和跨域资源共享(CORS)规则。
whistle官方文档关于whistle · GitBook (wproxy.org)
以下是如何配置 whistle 来解决跨域问题:
安装和启动 whistle:
首先确保你已经安装了 Node.js 和 whistle,如果没有,可以通过以下命令安装 whistle:
1npm install -g whistle
然后启动 whistle:
1w2 start
配置 whistle:
创建一个 whistle 的规则文件,比如 whistle.rules,用于定义代理和跨域资源共享(CORS)规则。在这个文件中添加以下内容:
123456# 设置代理https://api.juejin.cn/booklet_api/v1/booklet/listbycategory?aid=2608&uuid=73842694125 ...
react初学常见问题
1、react+webpack+ts配置@指向src创建项目:npx create-react-app projectName --template typescript
通过配置craco来解决这个问题(常用)
安装craco
1npm i -D @craco/craco
在项目根目录下面添加一个craco.config.ts文件
123456789101112const path = require('path')module.exports = { // webpack 配置 webpack: { // 配置别名 alias: { // 约定:使用 @ 表示 src 文件所在路径 '@': path.resolve(__dirname, 'src') } }}export {}
修改package.json中的脚本命令
123456"scripts": { &q ...
vpn的基本使用
VPN教程和注册
https://kingfast.info/docs/#/ssr/ios 教程
http://kingfast.info/index.php/index/register/?yqi=33092 注册
常用的软件:
SetupVPN
Shadowrocket
文献查找
查找文献谷歌学术:https://scholar.google.com/下载SCI-HUB:https://sci-hubtw.hkvisa.net/翻译知云:https://www.zhiyunwenxian.cn/
flutter
flutter在Windows平台下的安装配置
Flutter在Windows平台下的安装配置 - zxsh - 博客园 (cnblogs.com)
闭包(和jS中的闭包一样)1234567fn() { var a = 0; return () { a++; print(a); }}
创建固定长度和类型的List12345678List list = new List<int>.filled(2,0);list[0] = 1;list[1] = 2;print(list);//[1,2]/** 只固定类型 List list = <int>[];*/
命名构造函数12345678910111213141516171819class Person{ String name; int age; //默认构造函数的简写 Person(this.name, this.age); Person.now() { print(& ...
Docker基础
Docker基础1.docker的下载和安装docker官网:http://www.docker.com
Docker Hub官网:(安装docker镜像的仓库)https://hub.docker.com/
2.docker的基本组成
镜像:类似于java的类模板
容器:类似于通过java的类模板new出来的示例对象
仓库:存放镜像文件的地方
3.对docker的理解1.从面向对象角度
Docker利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
2.从镜像容器角度
可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序
总结
Docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交 ...
TypeScript基础
TypeScript的基本使用安装TypeScript包1npm i -g typescript
解释:全局安装typescript包
12//hello.tsconsole.log('Hello TS')
将ts文件转化为js文件1tsc hello.ts
此时当前目录中会生成一个hello.js文件
执行1node hello.js
注意:在执行的时候,执行的是js文件
简化执行TS的步骤
使用ts-node包,可以直接在Node.js中执行TS代码
原理:其实就是借助这个包将上面的步骤简化为一个步骤
全局安装ts-node
1npm i -g ts-node
ts-node包的使用
1ts-node hello.ts
注意这里执行的是ts文件,而且这里将不再生成新的hello.js,可以直接输出js执行的结果
变量的基本使用
声明变量并指定类型
1let age: number;
给变量赋值
123age = 18//声明时就赋初值let age: number = 18
类型注解
作用:是一种为变量添加类型约束的方式 ...