- 博客(50)
- 资源 (1)
- 收藏
- 关注
原创 javascript 获取当前本机 IP 地址
const os = require('os')const getIP = () => { const interfaces = os.networkInterfaces(); console.log('interfaces:', interfaces) for (let devName in interfaces) { const iface = interfaces[devName]; console.log('iface:', iface) for (le.
2020-09-14 16:15:18 14043 4
原创 javascript 事件
function a(event) { // 组织默认行为,类似 a标签的点击跳转 event.preventDefault() // 阻止事件冒泡 event.stopPropagation() // 获取触发事件的元素 event.target}
2020-05-10 22:24:18 221
原创 nodejs服务使用pm2启动多个进程和进程守护,以及使用pm2-logrotate-ext分割日志
全局安装pm2npm install pm2 -gpm2 json 配置文件,script 指向的是入口文件, watch 是否监听文件改变重启instances 启动的进程数日志的配置, 访问日志和异常日志,日志的时间前缀格式,是否合并日志,如果开启两个进程,不合并日志就会生成两份访问日志和异常日志,分为两个进程的日志。{ "apps": { "...
2020-04-24 10:29:34 2880
原创 CenterOS8 安装 mysql
yum -y install mysql-server安装好之后,重启一下服务。service mysqld restartmysql -u root -pCenterOS8 mysql貌似初始是没有密码的,直接回车就进去了。进去之后设置一个密码。alter user 'root'@'localhost' identified 'AAaa123456!';...
2020-04-23 20:57:41 1277
原创 CenterOS8 安装 redis
yum install -y redissystemctl start redis.servicesystemctl enable redis.serviceps -ef|grep redis安装, 启动redis 服务,设置开机启动, 查看redis进程。
2020-04-23 20:42:51 455
转载 CenterOS8 安装 nginx 和报错处理
大佬https://blog.csdn.net/pipichao/article/details/105542286
2020-04-23 20:40:11 1084
原创 express 中连接redis,把 session 存入 redis 中
安装依赖 : express-session connect-redis redis创建 redis 服务const redis = require('redis')const {REDIS_CONF} =require('../conf/db')const redisCli = redis.createClient(REDIS_CONF.port, REDIS_...
2020-04-13 10:15:17 1030
原创 js 对象深拷贝 合并对象
deepMerge(...objs) { const result = Object.create(null) objs.forEach(obj => { if (obj) { Object.keys(obj).forEach(key => { const val = obj[key] ...
2020-04-03 15:35:56 1157 1
原创 处理后端返回的 blob 文件流, 导出文件到本地
exportTableData(params).then(res => { const blob = new Blob([res]) const fileName = '报表.xls' const link = document.createElement('a') link.download = fileName link.style.displa...
2020-03-29 12:03:30 2982
原创 node 创建服务, 使用 nodemon 、 cross-env 热更新
简单的创建一个 node 服务, 引入 http 模块,创建连接,监听端口。const http = require('http')const querystring = require('querystring')const PORT = 8000const server = http.createServer(serverHandle)server.listen(PORT...
2020-03-24 16:24:15 1084 1
原创 node server 在redis 中存 session/token
安装 redisredis 安装好之后启动服务。在项目中安装 redis 依赖,npm install --save redis连接 redisconst redis = require('redis')const {REDIS_CONF} =require('../conf/db')// 创建连接 第一个参数是端口 第二个参数 主机const redi...
2020-03-24 15:47:43 367
原创 node 链接数据库
const MYSQL_CONF = { host: 'localhost', user: 'root', password: 'root', port: '3306', database: 'myblog' }// 创建链接const con = mysql.createConnection(MYSQ...
2020-03-19 21:53:01 110
原创 微信小程序云开发 数据库查询脚本语法
// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init()const db = cloud.database()const dbList = db.collection('playlist')// 云函数入口函数exports.main = async(event, context) => { //skip...
2020-02-28 15:04:08 1272
原创 发布自己的 npm 包的流程
配置 package.json,选好打包工具打包好。打包好了之后也可以自己写一下自动化部署脚本。在项目根目录,登录 npm 账户npm adduser填写用户名和密码还有邮箱之后查一下自己的包名是否可以使用npm view 包名如果找不到包,说明可以使用没有被占用,然后发布。npm publish也可以自己写部署脚本添加到 package.jso...
2020-02-24 01:15:49 286
原创 jest 单元测试,配置+注释
"jest": { "//": "转换器 表示用 ts-jest 工具把 .ts | .tsx 文件内容转换为 js", "//":"因为测试代码使用 ts 编写的 node.js 不能直接支持 ts 所以要转换一下", "transform": { ".(ts|tsx)": "ts-jest" }, "//": "测试环境 这里配置jsd...
2020-02-19 22:19:23 1081
原创 XMLHttpRequest 对象发送请求的步骤
关于原生XMLHttpRequest 发送请求可以做的一些事情。目前 XMLHttpRequest 实列是被所有浏览器支持的。首先创建一个 XHR 对象实例。const request = new XMLHttpRequest()之后可以配置一些 返回值类型、超时时间、跨域请求携带COOKIE之类的。 request.responseType = responseT...
2020-01-15 17:30:12 1837
原创 ts 简单的对象深拷贝
简单的通过循环对象的 key , 如果 key 还是一个对象 通过递归来不断的进行对象的拷贝。export function deepMerge(...objs: any[]): any { const result = Object.create(null) objs.forEach(obj => { if (obj) { Object.keys(obj...
2019-12-10 15:55:17 6818 1
原创 ES6 箭头函数 {} 的问题
不加{},用在返回一个返回值的时候, 如果是直接返回一个返回值,可以不用加{}function getUser<T>() { return axios<ResponseData<T>>('extend/user').then(res => res.data).catch(err => console.error(err))}这样...
2019-11-10 15:01:44 201
原创 git 配置 ssh
第一次配置git config --global user.name "用户名"git config --global user.email "邮箱"配置一下用户名和邮箱生成 SSHssh-keygen -t rsa -C "邮箱"查看 sshcd ~/.ssh找到id_rsa.pub 文件;复制文件内容添加到 github 的 ssh 密钥...
2019-11-07 22:18:13 103
原创 npm 安装依赖断网之后清除缓存和卸载依赖重装
清缓存npm cache verifynpm cache clean --force删除缓存npm uninstall *
2019-08-05 19:13:30 2687
原创 typescript 接口
/** 类型检查器会查看printLabel的调用。 printLabel有一个参数,并要求这个对象参数有一个名为label类型为string的属性。 需要注意的是,我们传入的对象参数实际上会包含很多属性,但是编译器只会检查那些必需的属性是否存在,并且其类型是否匹配 */// function printLabel(labelledObj: { label: string }) {...
2019-07-24 11:37:07 177
原创 typescript 基础类型
typescript 基础类型// number 类型let num: number = 20let hexNum: number = 0x14 // 16进制let binaryNum: number = 0b10100 // 二进制let octallNum: number = 0o24 // 8进制// string 类型let _name: string = '...
2019-06-16 22:30:46 165
原创 javascript 怎么判断一个变量是不是数组
ES5 中能够比较准确的判断var a = []; Object.prototype.toString.call(a) === '[object Array]'ES6 中能够比较准确的判断Array.isArray([]); // => true Array.isArray({0: 'a', length: 1}); // => false// ...
2019-05-08 19:27:28 234
原创 koa 入门使用实例
koa 官网首先在项目中安装koanpm install koa --save新建一个Js文件const koa = require('koa')const app = new koa()// 使用// app.use(async (ctx) => {// ctx.body = 'hello koa'// })// 中间件机制app.use...
2019-03-27 23:42:15 1073
原创 js 处理异步 callback、Promise、async+await三种方式
关于javascript处理异步的三种方式的简单介绍// 1、很久以前处理异步// callback 回调方式function ajax(fn) { setTimeout(() => { console.log('异步') fn() }, 1000)}ajax(() => { console.log('异步结束'...
2019-03-27 23:25:52 1515
原创 ES6 常见代码片段,对数组和对象的操作
es6一些常见的代码片段 对数组和对象的操作复制之后用node直接跑起来就可以看到输出// 遍历let arr = [1,2,3,4]arr.forEach(v => { //console.log(v)})// 可以返回每一个元素都乘以2的数组console.log(arr.map(v => v*2)) // [ 2, 4, 6, 8 ]// 返...
2019-03-22 23:27:42 418
原创 js 计算两个日期的天数差
// 计算时间的差值 dateDiffer (d1, d2) { // 返回两个日期的毫秒数 let _d1 = Date.parse(d1) let _d2 = Date.parse(d2) // 拿到差值的绝对值 let dateDiffer = Math.abs(_d1 - _d2) // 差值是毫秒 转换成...
2019-03-21 16:58:49 1058
原创 小程序 生命周期
App({ onLaunch: function(options) { // 小程序启动执行 初始化配置 }, onShow: function(options) { // 小程序显示执行 }, onHide: function() { // 小程序隐藏执行 }, onError: func...
2019-03-19 15:05:48 144
原创 vue @scroll 事件
vue 的 scroll 事件做首页按需加载的时候 滚动条滚动到底部之后加载由于如果绑定在window上,那么路由切换之后,事件依然会被触发,所以在div元素上绑定(如果绑定在window上,那么在导航守卫里,路由离开的时候解绑就行了,一样可以实现功能)在元素标签上直接绑定 scroll 事件<div class="home-test" @scroll="scrol...
2019-03-11 11:50:48 29349 1
原创 vue 跳转路由修改页面title为对应路由名字
vue-router 跳转页面的时候,修改页面的title为对应的路由 routes: [ { // 默认的首页 path: '/', name: 'Home', component: Home, meta: { index: 0, title: '首页' } }, ...
2019-03-07 15:03:22 7337
原创 js 数组和字符串的转换
1、数组转字符串let _arr = [1, 2, 3, 4, 5]_arr.join(',') // '1,2,3,4,5'// 转为使用逗号分隔的字符串 2、字符串转数组let _str = '1,2,3,4,5'_str.split(',') // [1, 2, 3, 4, 5]// 字符串转为数组 每一项按照逗号进行分隔 ...
2019-02-20 14:10:09 181
原创 vue 进入页面获取input 焦点
移动端搜索页面进入页面后,获取到 input 的焦点, 才能弹出键盘使用H5属性值可以获取到焦点<input v-model="keyWord" class="search-inp-item" type="text" autofocus="autofocus"/>但是,第一次进入可以, 返回再次进入就不能获取到焦点了使用官方的解决方法在main.js中加上...
2019-02-20 10:56:23 2509
原创 vue 图片懒加载
安装、引用、配置三部曲1、安装`npm install vue-lazyload --save-dev2、在main.js中引用import VueLazyload from 'vue-lazyload'3、配置Vue.use(VueLazyLoad, { error: require('assets/defultImage/defultTy1.png'), loading...
2019-02-18 14:52:38 132
原创 HLS、RTMP、HTTP-FLV直播协议
HLS协议HLS协议请求m3u8文件,解析之后得到若干个ts文件 但是,也有可能m3u8文件下是若干个m3u8文件,需要判断播放器和浏览器是否支持m3u8文件同时又细分为 动态列表、静态列表和全量列表 动态列表:顾名思义,是不断变化的,再直播中比较常用静态列表:几乎不怎么使用全量列表:数据不变化的,常用于点播 m3u8文件// m3u8文件就是...
2019-01-19 12:01:38 4844
原创 vue 变更url但是不去刷新页面,类似标记
vue router 更改地址url 不刷新页面 不存在history记录里面this.$router.push() 改为 this.$router.replace() replace 的url不会被添加到history记录里面当调用 this.$router.go(-1) 或者 this.$router.back() 不会回退到replace添加的页面里,而是会回到repla...
2019-01-16 14:20:44 8958
转载 前端js 过滤富文本编辑器中带过来的标签和 之类的
test.replace(/<[^>]+>|&[^>]+;/g, "")
2019-01-10 15:40:09 3893
原创 better-scroll 上拉加载
一、better-scroll 的上拉加载首先需要一个使用了BS编写的列表(肯定是不能有BUG的)BS中文文档 this.actScroll = new BScroll(actBox, { tap: true, scrollbar: { fade: true }, pullUpLoad: {...
2019-01-08 14:30:38 2640
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人