Men的博客

欢迎光临!

0%

Node Express

node js express

1.安装
npm install express-generator -g
express node_express
全局安装nodemon
2.创建服务实例,设置路由,设置中间件,启动服务器

中间件
express.static
express.json
express.urlencoded
app.use((err,req,res,next)错误级别的中间件,捕获整个项目中的异常错误,从而防止程序的崩溃
body-parser安装中间件
中间件的功能可以包括:
IP筛选
查询字符串传递
请求体解析
cookie信息处理
权限校验
日志记录
会话管理中间件(session)
gzip压缩中间件(如compress)
错误处理

项目结构
Bin 启动执行文件
Config 配置、数据库等
models 数据模型
routers 路由相当于controller
public 静态资源
app.js 入口

node + vue + http-server

mysql
limit
FIND_IN_SET type中以 1,3,4 的格式存储。那我们如何用sql查找所有type中有4的图文类型
SELECT count(id) as total 查找数量

pm2使用
pm2 start (如果命令有–port 应该是 用 – port,或者用package包装一个命令)
pm2 list
pm2 stop
pm2 delete

python使用
作为非常方便的脚本语言,python在比较简单的程序上作用非常巨大

virtualenv用来创建一个”隔离”的Python运行环境,这个python环境也被称为虚拟环境,一般的,一个虚拟环境只服务一个项目,我们将这个项目用的包等全部下载到这个虚拟环境中,并且能随时开启和关闭虚拟环境。
virtualenv本身是一个模块,所以使用前保证系统(所有系统平台)已经安装了python环境。

PySide
安装方式用pip直接安装 pip install pyside6
方法一. 直接上手写Python代码,布局靠代码写

方法二. 可视化的拖拽界面,然后生成.ui文件
pyside-designer拖拽组件生成.ui文件,用pyside6-uic把.ui文件生成.py文件

pyinstaller
-F,-onefile 产生单个的可执行文件
-D,–onedir 产生一个目录(包含多个文件)作为可执行程序

文件上传 formidable
const form = formidable({
uploadDir: uploadPath, // 上传文件放置的目录
keepExtensions: true, //包含源文件的扩展名
multiples: false //多个文件的倍数
})
unzip
rename
亚马逊云上传
aws-sdk

this.s3 = new AWS.S3({
apiVersion: ‘2006-03-01’,
endpoint: ‘’,/** 上传地址 /
accessKeyId: ‘’, /*
密钥 /
secretAccessKey: ‘’,/*
私钥 */
s3ForcePathStyle: true
})
s3.upload({
Bucket: bucket,
Key: ${dir}/${new Date().getTime()}_${file.name},
Body: file,
ACL: ‘public-read’,
}, instance.options, (err, data) => {
if (err) {
console.log(‘文件上传云存储失败’, err)
resolve(null)
} else {
resolve(data)
}
})
百度地图
/// 引入百度地图SDK
export function BMPGL() {
return new Promise(function(resolve, reject) {
window.init = function () {
// eslint-disable-next-line
resolve(BMapGL)
}
const script = document.createElement(‘script’)
script.type = ‘text/javascript’
script.src = http://api.map.baidu.com/api?v=1.0&type=webgl&ak=o91K8HjQRxzIC1XLxBBVK9G6p2qIP08r&callback=init
script.onerror = reject
document.head.appendChild(script)
})
}
// /// 引入百度绘制工具
export function BMAPLIB() {
return new Promise(function (resolve, reject) {
let script2 = document.createElement(‘script’)
script2.type = ‘text/javascript’
script2.src = ‘//mapopen.bj.bcebos.com/github/BMapGLLib/DrawingManager/src/DrawingManager.min.js’
script2.onerror = reject
document.head.appendChild(script2)
let link = document.createElement(‘link’)
link.rel = ‘stylesheet’
link.href = ‘//mapopen.bj.bcebos.com/github/BMapGLLib/DrawingManager/src/DrawingManager.min.css’
document.body.appendChild(link)
//eslint-disable-next-line
resolve()
})
}
/// 图片压缩
export function compressPic(file) {
return new Promise((resolve) => {
imageConversion.compressAccurately(file.raw, {
size: 100,
accuracy: 0.9,
width: 64,
height: 64,
type: ‘JPEG’
}).then(res => {
res.name = file.raw.name;
resolve(res);
}).catch(() => {
resolve(null);
})
});
}
// 播放器

// 支持tiff切片图层上传

element-ui 输入框校验

const validator_latitude = (rule, value, callback) => {
if (!value) {
return callback(new Error(‘请输入’));
}
const floatValue = parseFloat(value);
if (!floatValue) {
return callback(new Error(‘不是正确数字’));
}
if (floatValue < 3 || floatValue > 53) {
return callback(new Error(‘坐标超出了地理范围’));
}
return callback();
};
latitude: [
{ required: true, message: ‘请输入’, trigger: ‘blur’ },
{ validator: validator_latitude, trigger: ‘blur’ }
],

views 下面的 vue 文件代表着页面的名字
大写开头,开头的单词就是所属模块名字(CarDetail、CarEdit、CarList)
事件方法以 on 开头(onTypeChange、onUsernameInput)
ajax 方法以 get、post 开头,以 data 结尾(优:getListData、postFormData)
组件的私有方法都用 _ 开头,所有事件监听的方法都用 handle 开头

get 获取/set 设置,
add 增加/remove 删除
create 创建/destory 移除
start 启动/stop 停止
open 打开/close 关闭,
read 读取/write 写入
load 载入/save 保存,
create 创建/destroy 销毁
begin 开始/end 结束,
backup 备份/restore 恢复
import 导入/export 导出,
split 分割/merge 合并
inject 注入/extract 提取,
attach 附着/detach 脱离
bind 绑定/separate 分离,
view 查看/browse 浏览
edit 编辑/modify 修改,
select 选取/mark 标记
copy 复制/paste 粘贴,
undo 撤销/redo 重做
insert 插入/delete 移除,
add 加入/append 添加
clean 清理/clear 清除,
index 索引/sort 排序
find 查找/search 搜索,
increase 增加/decrease 减少
play 播放/pause 暂停,
launch 启动/run 运行
compile 编译/execute 执行,
debug 调试/trace 跟踪
observe 观察/listen 监听,
build 构建/publish 发布
input 输入/output 输出,
encode 编码/decode 解码
encrypt 加密/decrypt 解密,
compress 压缩/decompress 解压缩
pack 打包/unpack 解包,
parse 解析/emit 生成
connect 连接/disconnect 断开,
send 发送/receive 接收
download 下载/upload 上传,
refresh 刷新/synchronize 同步
update 更新/revert 复原,
lock 锁定/unlock 解锁
check out 签出/check in 签入,
submit 提交/commit 交付
push 推/pull 拉,
expand 展开/collapse 折叠
begin 起始/end 结束,
start 开始/finish 完成
enter 进入/exit 退出,
abort 放弃/quit 离开
obsolete 废弃/depreciate 废旧,
collect 收集/aggregate 聚集

const { firstName, lastName } = obj
function getFullName({ firstName, lastName }) {}

laravel