微博登录
cover

计算机编码(ASCII、Unicode、UTF-8、UTF-16、UTF-32)

2023-09-20 22:55:08

计算机编码指电脑内部代表文字、符号、字母或数字的方式。电子计算机的文数字编码,是指在计算机硬件软件中对于文字或数值的内部表示。

1.ASCII

ASCII:计算机起源于美国,上个世纪,他们对英语字符与二进制位之间的关系做了统一规定,并制定了一套字符编码规则,这套编码规则被称为ASCII编码。

ASCII 编码一共定义了128个字符的编码规则,用七位二进制表示 ( 0x00 - 0x7F ), 这些字符组成的集合就叫做 ASCII 字符集。

缺点:英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。所以出现了 unicode 解决方案。

2.Unicode

Unicode:Unicode(统一码、万国码) 是国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。统一码是为了解决传统的[字符编码](https://baike.baidu.com/item/字符编码/8446880?fromModul

阅读更多...

concurrently

2022-05-26 23:12:07

concurrently(多服务同时开启)

1.安装

注意要在项目根目录下安装

npm install concurrently

项目结构:

目录结构

2.前台 package.json

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "test": "vue-cli-service build --mode test",
    "lint": "vue-cli-service lint",
    "start": "npm run serve"
}

3.后台 package.json

```json "scripts": { "client-install": "npm install --prefix views", --prefix vie

阅读更多...

sequelize

2021-03-27 23:16:16

Sequelize是一个用于Postgres、MySQL、MariaDB、SQLite和Microsoft SQL Server的基于Promise的Node.js ORM框架。它具有可靠的事务支持、关系管理、预加载和延迟加载、主从复制

(Read replication)等功能。

Sequelize遵循SEMVER(Semantic Versioning-语义化版本规范)。支持Node v6及更高版本,以使用ES6相关功能。

Sequelize v5发布于2019年3月13,现已包含官方的TypeScript类型

本文可理解为Sequelize的教程和指南,在使用过程中,你可能还会需要API参考

一、安装

```shell 安装 Sequelize npm install sequel

阅读更多...

JS之 Object 及方法

2022-05-22 03:31:41

1.定义

// 构造函数定义(可以省略 new 操作符)
let obj = new Object();		// {}
obj.name = 'bbw';	// {name: "bbw"}
 必须添加引号
obj[age] = 19; 	// Uncaught ReferenceError: age is not defined
obj['age'] = 19; 	// {name: "bbw", age: 19}
obj['name'] = 'text';		// {name: "text"}

// 字面量定义
let obj = {};	// {}
obj.name = 'bbw';	// {name: "bbw"}

let obj = { age: 16, name: 'bbw' };		// {age: 16, name: "bbw"}
obj.sex = 'man';	// {age: 16, name: "bbw", sex: "man"}

2.检测对象

Object.prototype.toStrin

阅读更多...

sequelize动态创建表

2022-05-26 23:17:23

之前一直都很困惑如何动态创建在数据库中创建一张表,最近在工作中遇到,并且成功实现。记录下。。。。。。

本操作基于 express + Mysql + sequelize 实现。

  1. 安装要使用的依赖
npm install express body-parser sequelize mysql2

2.连接数据库

```javascript // db.index.js const Sequelize = require('sequelize');

const db = new Sequelize(process.env.DB_DATABASE, process.env.DB_USERNAME, process.env.DB_PASSWORD, { host: process.env.DB_HOST, port: process.env.DB_PORT, dialect: 'mysql', timezone: '+08:00' });

db .authenticate

阅读更多...

JS之 Array 方法

2022-05-22 03:05:18

1.定义

// 构造函数定义(可以省略 new 操作符)
const arr1 = new Array();	// []
const arr2 = new Array(20);		// 20 长度的数组
const arr3 = new Array('red','blue','green');	// ["red", "blue", "green"]

// 字面量定义
const arr4 = [];	// []
const arr5 = [20];		// 20 长度的数组
const arr6 = ['red','blue','green'];	// ["red", "blue", "green"]
arr6[3] = 'black';	// ["red", "blue", "green", "black"]

2.检测数组

2.1 instanceof

对于一个网页或者一个全局作用域而言,使用 instanceof 操作符就能得到满意的结果。

```javascript if(val instance

阅读更多...

混入(mixin)

2021-03-27 18:41:35

1.简介

​ 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行'合并':

  • 数据对象在内部会进行递归合并,并在发生冲突时以 user 数据优先。
  • 同名钩子函数将合并为一个数组,因此都将被调用。混入对象的钩子将在 user 自身钩子之前调用
  • 同名钩子函数下的同名属性发生冲突时,user 的属性为准
  • 注意Vue.extend() 也使用同样的策略进行合并。

2.组件混入

```javascript 定义一个混入对象 export const Mixin = { created: function() { this.hello() }, methods: { hello: function() { console.log('hello from mix

阅读更多...

redis命令

2022-05-22 03:55:20

1.数据结构一览

  • 常见的五种数据结构

    • key-val: 一个 key 对应一个 val
    • key-hash: 一个 key 对应一个 map
    • key-list: 一个 key 对应一个列表 (无序允许重复)
    • key-set: 一个 key 对应一个集合 (无序不允许重复)
    • key-zset: 一个 key 对应一个集合 (有序不允许重复)
  • 其它

    • HyperLogLog: 计算近似值
    • GEO: 地理位置
    • BIT: byte[] 字节数组

Redis数据结构

2.各数据结构常见用法

  • key-val: 最常用,一般用于存储一个值
  • key-hash: 储存一个对象数据
  • key-list: 使用 list 结构实现栈和队列结构
  • key-set: 交集、差集、并集的操作
  • key-zset: 排行榜、积分存储等操作
  1. key-val 常用命令

```s

阅读更多...

vue3组合式API

2022-05-22 03:46:20

1.什么是组合式 API

​ vue 的组件选项在大多数情况下都有效。但是当组件变的更大时,逻辑关注点的内容也会增大。这可能会导致组件难以阅读和理解,这种碎片化使得理解和维护变得困难。选项的分离掩盖了潜在的逻辑问题。此外,在处理某个业务时,我们可能会在不同"钩子"间相互跳转。

如果我们能够将同一逻辑关注点相关的代码配置在一起会更好。而这正是组合式 API 所具备的能力。

2.setup

​ 在 vue 组件中,我们将使用组合式 API 的位置称为 setup

​ setup 组件选项在创建组件之前执行,setup 中返回的所有内容,会合并到各个钩子中。类似 mixin 属性。

setup(props, context):

  • props: 因为 props 是响应式的,你不能使用 ES6 解构,因为它会消除 prop 的响应性。
  • context: 包含三个组件的属性,并且它不是响应式的,这意味着你可以安全地对 context 使用 ES6 解构。
    • attrs: Attr
阅读更多...

JS之 Date 对象

2022-05-22 03:29:15

创建一个 JavaScript Date 实例,该实例呈现时间中的某个时刻。Date 对象则基于 Unix Time Stamp,即自1970年1月1日(UTC)起经过的毫秒数。

一、静态方法

1.Date.UTC()

Date.UTC(): 将接受的参数转换为毫秒数。返回毫秒时间戳。

Date.UTC(year: number, month: number, day?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number
  • year: 1900 年后的某一年份。
  • month: 月份。0 代表一月,以此类推。0 - 11。
  • day: 天。1 - 31。
  • hours: 小时。0 - 23。
  • minutes: 分。0
阅读更多...

crud

2022-05-26 23:19:36

基于 nest.js 的快速增删改查中间件。仅适用于TypeScript

1.特点

  • 与数据库无关的可扩展 CRUD 控制器
  • 查询字符串解析与过滤,分页,排序,关系,嵌套关系,缓存等。
  • 与框架无关的包与查询生成器用于前端使用
  • 查询、路径参数和 DTO 验证
  • 轻松地重写控制器方法
  • 微小但功能强大的配置(包括全局配置)
  • 额外的辅助修饰符
  • Swagger 文档

到目前为止,@nestjsx/crud 只支持 TypeORM,但是在不久的将来会包括 SequelizeMongoose 等其他 orm 。因此,在本文中,您将学习如何使用 TypeORM 创建 CRUD 控制器和服务。我们假设您已经成功安装并设置了 @nestjs/typeorm 包。

2.安装

npm i --save @nestjsx/crud @nestjsx/crud-typeorm class-transformer class-validator
阅读更多...

14.assert

2022-05-26 23:09:41

1.简介

assert 断言模块,该模块提供了一组断言函数,用于验证表达式是否符合预期结果。常常用作测试。

2.方法

2.1 assert()

assert(value, message): 验证 value(表达式) 是否符合预期,异常则抛出 message。

  • value: 要验证的表达式。结果是一个 Boolean 值
  • message: 不符合预期时抛出的消息
const assert = require('assert');

assert(sum(10, 10) === 10, '求和函数不符合预期');	// error 求和函数不符合预期

2.2 ok()

ok(value, message): 验证 value(表达式) 是否符合预期,否则抛出 message。同 assert()。

```javascript const { ok } = require("assert");

ok(sum(10, 10) === 10, "求和函数不符合预

阅读更多...

git 常用命令 置顶

2022-04-18 00:53:39

一、Git 基本概念

设计目标

速度、简单的设计、对非线性开发模式的强力支持 (允许成千上万个并行开发的分支)、完全分布式.有能力高效管理类似

lLinux 内核一样的超大规模项目(速度和数据量)

git 工作原理

  • 直接记录快照、而非差异比较:其他大部分系统以文件变更列表的方式储存信息;git对待数据更像是一个快照流。

  • 近乎所有操作都是本地执行:在Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。因为你在本地磁密上就有项目的完整历史,所以大部分操作看起来瞬间完成。

  • Git保证完整性:Git 中所有数据在存储前都计算校验和,然后以校验和来引(用。若你在传送过程中丢失信息或损坏文件,Git就能发现。Git 用以计算校验和的机制叫做 SHA-1 散列 (hash,哈希)。Git 数据库中保存的信息都是以文件内容的哈希值来索引1,而不是文件名。

  • Git 一般只添加数据:Git 操作几乎只往数据库中增加数据。很难让 Git 执行任何不可逆操作,或者让它以任何方式清除数据。一旦你提交快照到 Git 中,就难以再丢

阅读更多...

multer

2022-05-26 23:14:38

Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。它是写在 busboy 之上非常高效。

注意: Multer 不会处理任何非 multipart/form-data 类型的表单数据。

1.安装:

npm install multer

1.1 file 参数

Key Description Note
fieldname Field name 由表单指定
originalname 用户计算机上的文件的名称
阅读更多...

13.child_process

2022-05-26 23:09:19

1.spawn()

​ spawn(): 创建子进程来执行命令。适用于返回大量数据,例如图像处理,二进制数据处理。

child.stdout.pipe(process.stdout): 让子进程的stdio和当前进程的stdio之间建立管道链接

spawn(command:string, args:[], options:object)
  • command: 要运行的命令。
  • args: 命令的参数列表。
  • options: 配置项。
    • cwd: 子进程当前工作的目录。
    • env: 环境变量。默认值: process.env。
    • argv0: 显式地设置发送给子进程的 argv[0] 的值。 如果没有指定,则会被设置为 command 的值。
    • stdio: 子进程的 stdio 配置。参考
    • deta
阅读更多...

upload

2022-05-26 23:21:44

文件上传模块

无需安装 内部核心组件 直接使用即可

```typescript // book.module.ts import { BooksService } from './books.service' import { Module } from '@nestjs/common' import { BooksController } from './books.controller' import { MulterModule } from '@nestjs/platform-express' import { diskStorage } from 'multer'

@Module({ imports: [ MulterModule.registerAsync({ useFactory: () => ({ storage: diskStorage({ // 配置文件上传后的文件夹路径 destination: (

阅读更多...

body-parser

2022-05-26 23:11:42

body-parser是一个HTTP请求体解析中间件,使用这个模块可以解析JSON、Raw、文本、URL-encoded格式的请求体,Express框架中就是使用这个模块做为请求体解析中间件。

  1. 原生解析对比

Node.js 原生HTTP模块中,是将用户请求数据封装到了用于请求对象req中,该对象是一个IncomingMessage,该对象同时也是一个可读流对象。

var http = require('http');
//用http模块创建一个http服务端 
http.createServer(function(req, res) {
req.on('data', function(chunk){
....
});
req.on('end', function(){
....
//在此对不同类型进行判断
}).listen(3000);;

2.安装

npm install body-parser

3.使用

```javascript var expres

阅读更多...

PM2

2022-05-26 23:15:48

1.由来

​ node 程序运行中不能碰到错误,否则就会挂掉。所以 PM2 诞生了,PM2 可以守卫node进程,node挂了后会自动重启。

2.安装

npm install -g pm2

3.常用命令

pm2 start app.js	// 启用一个应用

pm2 stop app_name|app_id	// 停止
pm2 stop all	// 停止所有应用

pm2 delete app_name|app_id	// 移除某个应用
pm2 delete all	// 移除所有应用

pm2 reload app_name|app_id		// 重启
pm2 reload all		// 重启所有进程

pm2 list	// 查看启动的应用列表
pm2 status		// 查看应用状态

pm2 describe app_name|app_id	// 查看某个应用的信息

pm2 monit	// 监视进程
pm2 logs	// 显示所有进程日志

4.参数

阅读更多...

class-validator

2022-05-26 23:19:15

1.安装

npm i --save class-validator class-transformer

2.引入

// main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  app.useGlobalPipes(new ValidationPipe());	 使用管道添加验证

  await app.listen(3000);
}
bootstrap();

3.使用

```typescript // xxx.collection.ts import { Controller, Ge

阅读更多...

typegoose

2022-05-26 23:20:48

nest.js 连接 mongodb 数据库的一款中间件。

1.安装

npm install --save nestjs-typegoose @typegoose/typegoose
npm install -D mongoose @types/mongoose		 mongoose 语法提示模块

2.连接

```typescript // db.module.ts 连接数据库 import { Module } from '@nestjs/common'; import { TypegooseModule } from 'nestjs-typegoose'; import { UsersModule } from './../../../apps/admin/src/users/users.module'; // 引入要使用到的模块

@Module({ imports: [ TypegooseModule.forRoot('mongodb://localhost/watchVideo',

阅读更多...
加载中...
加载中...