<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ojb98K的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ojb98K</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ojb98K]]></copyright><item><title><![CDATA[js中时间格式转化的工具库 dayjs]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/108931706</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/108931706</guid><author>ojb98K</author><pubDate>Mon, 05 Oct 2020 19:32:34 +0800</pubDate><description><![CDATA[import dayjs from 'dayjs'
import 'dayjs/locale/zh-cn' // 加载中文语言包
import relativeTime from 'dayjs/plugin/relativeTime' // 加载相对时间
import Vue from 'vue'

dayjs.extend(relativeTime)
dayjs.locale('zh-cn')

// 相对现在的时间 过滤器
Vue.filter('relativeTime', value =&gt; {]]></description><category></category></item><item><title><![CDATA[js中超出number数据类型值范围的处理]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/108916372</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/108916372</guid><author>ojb98K</author><pubDate>Sun, 04 Oct 2020 09:26:02 +0800</pubDate><description><![CDATA[使用 import jsonBig from ‘json-bigint’


]]></description><category></category></item><item><title><![CDATA[css 中 svg 画一个圆形进度条]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/108452844</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/108452844</guid><author>ojb98K</author><pubDate>Mon, 07 Sep 2020 17:52:27 +0800</pubDate><description><![CDATA[&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
  &lt;meta charset="UTF-8"&gt;
  &lt;title&gt;SVG&lt;/title&gt;
  &lt;style&gt;
    .box {
      width: 300px;
      height: 300px;
      margin: 0 auto;
      background: #ffffff;
      position: r]]></description><category></category></item><item><title><![CDATA[vuejs 中  betterscroll 的简单使用]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/108299041</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/108299041</guid><author>ojb98K</author><pubDate>Sat, 29 Aug 2020 20:28:51 +0800</pubDate><description><![CDATA[&lt;template&gt;
  &lt;div class="swapper" ref="swapper"&gt;
    &lt;div class="content"&gt;
      &lt;slot&gt;&lt;/slot&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/template&gt;

&lt;script&gt;
  import BScroll from 'better-scroll'
  export default {
    name]]></description><category></category></item><item><title><![CDATA[vue 中 axios 的封装]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107998151</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107998151</guid><author>ojb98K</author><pubDate>Fri, 14 Aug 2020 09:58:24 +0800</pubDate><description><![CDATA[import axios from 'axios'

export function request(config) {

  // 创建一个 axios 实例
  const instance = axios.create({
    baseURL: 'http://123.207.32.32:8000/api/x6',
    timeout: 5000
  })

  // 请求拦截器，必须将处理后的数据返回
  instance.interceptors.request.use(config =&]]></description><category></category></item><item><title><![CDATA[vue屏幕适配 postcss-px-to-viewport]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107993651</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107993651</guid><author>ojb98K</author><pubDate>Thu, 13 Aug 2020 22:56:06 +0800</pubDate><description><![CDATA[基础配置

其他属性选项


]]></description><category></category></item><item><title><![CDATA[vue 中挂载一个全局组件，用组件构造器]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107992049</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107992049</guid><author>ojb98K</author><pubDate>Thu, 13 Aug 2020 21:35:06 +0800</pubDate><description><![CDATA[效果

index.js
import Toast from "./Toast";

const obj = {}

obj.install = function (Vue) {

  // 1.创建组件构造器
  const toastContrustor = Vue.extend(Toast)

  // 2.new的方式，根据组件构造器，可以创建出来一个自建对象
  const toast = new toastContrustor()

  // 3.将组件对象，手动挂载到某一个元素上
  toas]]></description><category></category></item><item><title><![CDATA[03.vuex 中 getter]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107731496</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107731496</guid><author>ojb98K</author><pubDate>Sat, 01 Aug 2020 15:25:48 +0800</pubDate><description><![CDATA[index.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // data
  state: {
    count: 0,
    msg: 'hello world',
    num: 11,
    val: 12
  },
  // methods
  mutations: {
    addNum(state) {
      state.coun]]></description><category></category></item><item><title><![CDATA[02. vuex 中 state]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107730853</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107730853</guid><author>ojb98K</author><pubDate>Sat, 01 Aug 2020 14:55:53 +0800</pubDate><description><![CDATA[main.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // data
  state: {
    count: 0,
    msg: 'hello world',
    num: 11,
    val: 12
  },
  // methods 外部用 this.$store.commit调用
  mutations: {
    addNum(s]]></description><category></category></item><item><title><![CDATA[01. vuex 的简单介绍]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107730786</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107730786</guid><author>ojb98K</author><pubDate>Sat, 01 Aug 2020 14:47:20 +0800</pubDate><description><![CDATA[1.Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态，并以相应的规则保证状态以一种可预测的方式发生变化。



]]></description><category></category></item><item><title><![CDATA[01.vue 中 less 的简单使用]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107719463</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107719463</guid><author>ojb98K</author><pubDate>Fri, 31 Jul 2020 18:43:28 +0800</pubDate><description><![CDATA[使用 less 写一个弹框组件
在用 vue create vueless 时选择 css 预处理
Alert.vue
&lt;template&gt;
  &lt;div class="alert"&gt;
    &lt;div class="zhezhao"&gt;
      &lt;div class="alertMain"&gt;
        &lt;div class="title"&gt;
          温馨提示:{{title}}
        &lt;/div&gt;
   ]]></description><category></category></item><item><title><![CDATA[24.nodejs中md5加密]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107597067</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107597067</guid><author>ojb98K</author><pubDate>Sun, 26 Jul 2020 17:58:31 +0800</pubDate><description><![CDATA[/**
 * @description 加密
 */

const crypto = require('crypto')  // nodejs 内置加密模块
const { CRPYTO_SECRET_KEY } = require('../conf/secretKeys')  // 密钥


/**
 * md5 加密
 * @param content
 */
function _md5(content) {
  const md5 = crypto.createHash('md5')
  return]]></description><category></category></item><item><title><![CDATA[23.nodejs中后台逻辑事务的处理过程]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107592086</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107592086</guid><author>ojb98K</author><pubDate>Sun, 26 Jul 2020 12:42:33 +0800</pubDate><description><![CDATA[学习的是慕课网课程

]]></description><category></category></item><item><title><![CDATA[22.nodejs 中 koa框架上传文件 koa-multer]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107590321</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107590321</guid><author>ojb98K</author><pubDate>Sun, 26 Jul 2020 10:46:36 +0800</pubDate><description><![CDATA[const multer = require('koa-multer')

const storage = multer.diskStorage({
  destination: function (ctx, file, cb) {
    cb(null, 'upload/files')
  },
  filename: function (ctx, file, cb) {
    const fileName = (file.originalname).split('.')[0].toString('b]]></description><category></category></item><item><title><![CDATA[21.nodejs中koa框架上传下载文件 formidable-upload-koa]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107590088</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107590088</guid><author>ojb98K</author><pubDate>Sun, 26 Jul 2020 10:40:06 +0800</pubDate><description><![CDATA[上传文件使用 formidable-upload-koa 模块
下载文件使用 koa-send 模块
router
const router = require('koa-router')()
const koaForm = require('formidable-upload-koa')
const { saveFile } = require('../controller/files')
const send = require('koa-send')
const path = require('pat]]></description><category></category></item><item><title><![CDATA[20.nodejs 中 数据格式验证 ajv的简单使用]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107566289</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107566289</guid><author>ojb98K</author><pubDate>Fri, 24 Jul 2020 17:44:46 +0800</pubDate><description><![CDATA[const ajv = require('ajv')  // 导入ajv

const AJV = new ajv()   // 生成ajv实例对象

// 匹配规则一
const SCHEMA1 = {
  type: 'object',
  properties: {
    userName: {
      type: 'string',
      pattern: '^[a-zA-Z][a-zA-Z0-9_]+$', // 字母开头，字母数字下划线
      maxLength: 255,
 ]]></description><category></category></item><item><title><![CDATA[19.nodejs 中 koa2框架jwt的简单使用]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107525101</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107525101</guid><author>ojb98K</author><pubDate>Wed, 22 Jul 2020 22:33:57 +0800</pubDate><description><![CDATA[jwt       json web token
app.js
const Koa = require('koa')
const app = new Koa()
const views = require('koa-views')
const json = require('koa-json')
const onerror = require('koa-onerror')
const bodyparser = require('koa-bodyparser')
const logger = require(]]></description><category></category></item><item><title><![CDATA[06.sequelize 查找 find]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107502115</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107502115</guid><author>ojb98K</author><pubDate>Wed, 22 Jul 2020 00:10:36 +0800</pubDate><description><![CDATA[const { Blog, User} = require('./model')

!(async () =&gt; {
  // // 查询一条记录
  // const zhangsan = await User.findOne({
  //   where: {
  //     userName: 'zhangsan'
  //   }
  // })
  // // console.log('zhangsan', zhangsan.dataValues)
  //
  // // 查询特点的列
 ]]></description><category></category></item><item><title><![CDATA[05.sequelize 修改 update]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107502075</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107502075</guid><author>ojb98K</author><pubDate>Wed, 22 Jul 2020 00:06:30 +0800</pubDate><description><![CDATA[const { User, Score } = require('./model')

!(async () =&gt; {

  const updateRes = await User.update({
    password: 'abc'
  }, {
    where: {
      userName: 'lisi'
    }
  })
  console.log('updateRes: ', updateRes[0] &gt; 0)
})()



]]></description><category></category></item><item><title><![CDATA[04.sequelize 删除 destroy]]></title><link>https://blog.youkuaiyun.com/ojb98K/article/details/107501984</link><guid>https://blog.youkuaiyun.com/ojb98K/article/details/107501984</guid><author>ojb98K</author><pubDate>Wed, 22 Jul 2020 00:02:37 +0800</pubDate><description><![CDATA[const { User, Score } = require('./model')

!(async () =&gt; {
	// 因为外键关系，当删除是会在外键关联的表的数据也删除
   const delUserRes = await User.destroy({
     where: {
       id: 1
     }
  })

  const delScoreRes = await Score.destroy({
    where: {
      id: 5
    }
  })
]]></description><category></category></item></channel></rss>