当服务器宕机时,同一个页面的所有接口都会报错,导致页面出现一堆消息,本文方法可以让相同内容的消息只显示最后一个。
不支持 .error() 式的用法。
操作步骤
编辑 main.js,添加以下代码:
import { Message } from 'element-ui';
var MessageStack = [];
Vue.prototype.msg = function(config = {}) {
MessageStack.forEach(function(item = {}) {
if (item.message == config.message && ite...
仅支持无感知验证,
vue-recaptcha-v3
yarn add vue-recaptcha-v3
src/main.js
import { VueReCaptcha } from 'vue-recaptcha-v3';
Vue.use(VueReCaptcha, {
siteKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
loaderOptions: {
// 是否使用国内的 recaptcha.net 域名
useRecaptchaNet: true,
// 是否隐藏“由reCAPTCHA 提供保护 隐私 - 使用条件”
autoHideBadge: process.env.N...
安装 Laravel
composer create-project laravel/laravel ./
修改依赖的下载源
composer global require slince/composer-registry-manager
composer repo:ls
composer repo:use aliyun
添加项目依赖
composer require doctrine/dbal # 增加修改表结构功能
composer require zedisdog/laravel-schema-extend # 增加表注释功能
composer require laravel/passport # OAuth
composer require spatie/laravel-permission # Permis...
问题
$this->validate
是因为所有控制器都使用了 ValidatesRequests Trait,所以可以使用这个 Trait
中提供的 validate() 方法
那 \App\Http\Requests 里的 validate () 方法是从哪里来的?最终实现是相同的吗?为什么会有两种写法?(我知道Validator::make() 是为了在 控制器外边用)
Laravel 代码如下:
$request->validate()
protected function validateLogin(\App\Http\Requests $request)
{
$request->...
Flutter 安装位置
~/Applications/flutter
Fish Shell
# ~/.config/fish/config.fish
set -gx PATH $PATH $HOME/.bin ~/Applications/flutter/bin
set -x PUB_HOSTED_URL https://pub.flutter-io.cn
set -x FLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn
检测是否符合要求
flutter doctor
yarn config set -g registry https://registry.npm.taobao.org
yarn config set -g disturl https://npm.taobao.org/dist
yarn config set -g electron_mirror https://npm.taobao.org/mirrors/electron/
yarn config set -g sass_binary_site https://npm.taobao.org/mirrors/node-sass/
yarn config set -g phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/
yarn config set -g chromedriver_cdnurl http...
用法
用下文中的代码创建 appkeyable.ahk 并用 AutoHotKey V1 打开,功能与这里类似:
CapsLock + 字母 --> 打开或切换到指定的程序窗口,若已是指定窗口则在窗口间循环切换
与 Alt+Tab 的区别:一次到位,指哪打哪,不需要再按多次来寻找需要的软件。
下载 appkeyable.tgz(内含已转为 appkeyable.exe 的 appkeyable.v3.ahk,可以不安装 AutoHotKey V1 直接运行)
代码
AutoHotKey 目前有 V1 和 V2 两个版本,可以同时...
lua 数组去重
-- bArray = true 会把 t 当数组(连续的数字 key)
-- 默认是当作“对象(key可以不是数字)”
-- 或理解为是否保留原来的 key
function table.unique(t, bArray)
local check = {}
local n = {}
local idx = 1
for k, v in pairs(t) do
if not check[v] then
if bArray then
n[idx] = v
idx = idx + 1
else
...
安装 semanage 等管理工具
dnf install policycoreutils-python-utils
查看 sshd 使用的端口
semanage port -l | grep ssh
# ssh_port_t tcp 2222, 22
为 sshd 添加一个 2222 端口
semanage port -a -t ssh_port_t -p tcp 2222
# 如需删除把 -a 换成 -d 。如果端口已经分配到其它地方,可以把 -a 换成 -m
恢复被服务商禁用的 SELinux
vim /etc/sysconfig/selinux
SELINUX=enforcing
# 要先保证能登录系...
让 wsl 里的 node 可以使用 80 端口
linux 中小于 1024 属于特权端口,如果指定了 80 会因无权限而改用 1024 端口。以下命令可以让 node 项目运行在 80 端口上(有安全问题,仅适用于开发调试)。
sudo setcap 'cap_net_bind_service=+ep' /path/bin/node
# kernel >= 2.6.24
# https://stackoverflow.com/questions/413807
Win11 添加开机启动项
把程序的快捷方式放入这个文件夹:
// win + r:
shell:st...
:::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: MySQL Baker 4 Windows
::
:: DATABASES=以空格分隔的库名或 --all-databases
::
:::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=-/ " %%1 in ("%date%") do set DATE_STR=%%1%%2%%3
set FILE_DATE=%DATE_STR: =0%
set FILE_PWD=123456
REM...
1. 下载zip版解压到你需要的位置,比如 C:\Program Files\MySQL 8.0.20\
2. 打开命令提示符进入 bin 文件夹
cd /d C:\Program Files\mysql-8.0.20\bin
3. 安装为自启动服务
mysqld.exe --install MySQL8.0.20
#卸载服务: mysql-nt.exe -remove
4. 初始化,生成 /data 目录等
mysqld.exe --initialize
# root 密码在 ./data/%COMPUTERNAME%.err 里
# 我的主机名为 win10,所以密码在 /data/win10.err 里
# 搜关键...