Redis常用操作(内存存储非关系数据库)
Redis(内存数据库)Redis为了解决:小虚拟机处理最大负载达到每秒数千条页面记录的情况Redis是一个速度非常快的非关系数据库,它可以存储键(key)与5种不同类型的值(value)之间的映射,可以使用客户端分片来扩展写性能。
分片是一种将数据库划分为多个部分的方法,对数据的划分可以基于键包含的ID,基于键的散列值,或者基于以上两者的某种组合。
通过对数据进行分片,用户可以将数据存储到多台机器里面,也可以从多台机器里面获取数据。
这种方法在解决某些问题是可以获得线性级别的性能提升。
新闻项目-问题集合
问题1:识别不了vue-class-component问题创建vue3项目时,添加typescript,一直报vue-class-component错误,找了好多方法,以下是解决我的问题方法解决:创建后,不要立即启动一连套安装完,再启动
创建后
选vue3的默认配置即可//终端vue create 英语名字
遇到安装不了,用–save不行就–force,或加上–force
打开项目,打开终端,不启动项目
先添加typescript,全yes
安装vue-class-component
安装 @babel/plugin-proposal-decorators @babel/plugin-proposal-class-properties
在babel.config.js配置代码
以上OK,启动
//先添加typescript,全yesvue add typescript//安装vue-class-componentnpm install --save vue vue-class-component//安装 @babel/plugin-proposal-decor ...
Electron-主进程Api - second
dialog-对话框
显示用于打开和保存文件、警报等的本机系统对话框
触发事件,出现对话框-其实就是磁盘文件
选择一个或多个文件
const {app, BrowserWindow, dialog} = require('electron')win.webContents.on('did-finish-load', () =. {dialog.showOpenDialog({buttonLabel: '选择',//可以改,确定按钮的名字defaultPath: app.getPath('desktop'),//本地应用的路径,可以写musicproperties: ['multiSelections'多选, 'createDirectory'创建, 'openFile', 'openDirectory'打开文件]}).then((result)=. {//consol ...
Electron-主进程Api - first
APP事件主进程入口文件main.js里写before-quit
在应用程序开始关闭窗口之前触发
用户关闭之前可做一些确认操作
app.on('before-quit',(e)=>{ console.log('App is quiting') //e.preventDefault()})
browser-window-blur
在browserWindow失去焦点时发出
监听用户是否,将应用放入后台
app.on('browser-window-blur', (e) => { console.log('App unfocused')})
browser-window-focus
在browserWindow获得焦点时发出
监听用户是否,将应用放入后台
app.on('browser-window-focus', (e) => { console.log('App focused')& ...
Electron-主进程和渲染进程通信
如何将渲染进程信息给主进程万能的方法ipcMain.handle(channel,listener)异步同步均可,异步async/await等等计算,返回promise,同步写也可
Main Process(主进程)
//my-invokable-ipc随便取的名字//ipcMain.handle('my-invokable-ipc', async (event, ...args) => { const result = await somePromise(...args) return result})
Renderer Process(渲染进程)
async () => { const result = await ipcRenderer.invoke('my-invokable-ipc', arg1, arg2) // ...}
实现
根目录html
script放在title后会导致JavaScript语法报错,因为还没有渲染完
得放在/body ...
Electron-主进程和渲染进程
主进程和渲染进程主进程:启动项目运行时的入口文件main.js脚本就是我们说的主进程。
在主进程运行的脚本可以创建Web页面形式展示GUI。
主线程只有一个
渲染进程:每个Electron的页面都在运行着自己的进程,这样的进程称之为渲染进程(基于Chromium的多进程结构)。主进程通过IPC通信与多个渲染进程(Web页面)通信(每个渲染进程都有一条与主线程IPC通信)
双向IPC通信
一对多(类似于映射)
主进程使用 BrowserWindow 创建实例,主进程销毁后,对应的渲染进程会被终止。主进程与渲染进程通过 IPC 方式(事件驱动)进行通信。为什么主进程与渲染进程的node.js是分开的?不分开,客户可以在HTML代码里,直接访问node.js里的文件,(自创本地磁盘文件,Horrible!)将主线程与渲染进程的node.js打通1-不用
在根目录下建文件夹,里建js文件
js文件里使用node语法(app.js)
在html引入路径(script标签)
//app.jsconst fs = require('fs')//fs.writ ...
electron-basic
Electron 是什么web技术:Electron 基于 Chromium 和 Node.js, 让你可以使用 HTML, CSS 和 JavaScript 构建应用。开源:Electron 是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目。跨平台: Electron 兼容 Mac 、 Windows 和 Linux ,可以构建出三个平台的应用程序。像网易云音乐,飞书等应用
实现第一个electron初始化项目
安装包npm init -y
安装electronnpm i electron -D
安装慢,用淘宝镜像// 使用阿里定制的cnpm命令行工具代替默认的npm,输入以下代码npm install -g cnpm --registry=http://registry.npmmirror.com// 检查 cnpm -v
文件入口
main.js替代index.js
修改package.json中的main"main": "main.js",
main.js写const { app, BrowserWindo ...
delete&&put请求修改更新数据(接口)(Typescript)
用Node+Typescript+Express书写delete和put请求修改更新数据接口
准备JSON文件在package.json同级下建名为data的文件夹,里面建你要的xxx.json文件和汇总的xxx.ts文件
我建了posts.json,data.ts
json里是数组对象的形式
代码//posts.json,内容是随便写的,按照key,value方式就可[ { "userId": 1, "id": 1, "title": "sunt aut facere repellat ", "body": "nnostrum rerum est autem sunt rem eveniet architecto", },{ "userId": 1, "id": 2, "title": "qui est esse&quo ...
post请求接收数据(接口)(Typescript)
用Node+Typescript+Express书写post请求接收数据(接口)
准备JSON文件在package.json同级下建名为data的文件夹,里面建你要的xxx.json文件和汇总的xxx.ts文件
我建了posts.json,data.ts
json里是数组对象的形式
post后在原来基础上加,可以是空posts.json文件
上传到服务器某个角落,目前没找到,
postman测试可以看到
data.ts代码import posts from './posts.json'export class DataStore{ static posts = posts;}
server.ts里配置
apiCreatePost是进行了模块化api,后面会说,不急。
npm install body-parser
因为post,收到undefined,用这个插件转化
有时引入格式更新,在https://www.npmjs.com/
搜索body-parser查找格式import express from "express&quo ...