- 博客(124)
- 资源 (2)
- 收藏
- 关注
原创 js中时间格式转化的工具库 dayjs
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 => {
2020-10-05 19:32:34
639
原创 css 中 svg 画一个圆形进度条
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>SVG</title> <style> .box { width: 300px; height: 300px; margin: 0 auto; background: #ffffff; position: r
2020-09-07 17:52:27
338
原创 vuejs 中 betterscroll 的简单使用
<template> <div class="swapper" ref="swapper"> <div class="content"> <slot></slot> </div> </div></template><script> import BScroll from 'better-scroll' export default { name
2020-08-29 20:28:51
180
原创 vue 中 axios 的封装
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 =&
2020-08-14 09:58:24
128
原创 vue 中挂载一个全局组件,用组件构造器
效果index.jsimport Toast from "./Toast";const obj = {}obj.install = function (Vue) { // 1.创建组件构造器 const toastContrustor = Vue.extend(Toast) // 2.new的方式,根据组件构造器,可以创建出来一个自建对象 const toast = new toastContrustor() // 3.将组件对象,手动挂载到某一个元素上 toas
2020-08-13 21:35:06
848
原创 03.vuex 中 getter
index.jsimport 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
2020-08-01 15:25:48
135
原创 02. vuex 中 state
main.jsimport 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
2020-08-01 14:55:53
126
原创 01. vuex 的简单介绍
1.Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
2020-08-01 14:47:20
108
原创 01.vue 中 less 的简单使用
使用 less 写一个弹框组件在用 vue create vueless 时选择 css 预处理Alert.vue<template> <div class="alert"> <div class="zhezhao"> <div class="alertMain"> <div class="title"> 温馨提示:{{title}} </div>
2020-07-31 18:43:28
184
原创 24.nodejs中md5加密
/** * @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
2020-07-26 17:58:31
185
原创 22.nodejs 中 koa框架上传文件 koa-multer
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
2020-07-26 10:46:36
545
原创 21.nodejs中koa框架上传下载文件 formidable-upload-koa
上传文件使用 formidable-upload-koa 模块下载文件使用 koa-send 模块routerconst router = require('koa-router')()const koaForm = require('formidable-upload-koa')const { saveFile } = require('../controller/files')const send = require('koa-send')const path = require('pat
2020-07-26 10:40:06
948
2
原创 20.nodejs 中 数据格式验证 ajv的简单使用
const ajv = require('ajv') // 导入ajvconst AJV = new ajv() // 生成ajv实例对象// 匹配规则一const SCHEMA1 = { type: 'object', properties: { userName: { type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9_]+$', // 字母开头,字母数字下划线 maxLength: 255,
2020-07-24 17:44:46
1015
原创 19.nodejs 中 koa2框架jwt的简单使用
jwt json web tokenapp.jsconst 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(
2020-07-22 22:33:57
342
原创 06.sequelize 查找 find
const { Blog, User} = require('./model')!(async () => { // // 查询一条记录 // const zhangsan = await User.findOne({ // where: { // userName: 'zhangsan' // } // }) // // console.log('zhangsan', zhangsan.dataValues) // // // 查询特点的列
2020-07-22 00:10:36
622
原创 05.sequelize 修改 update
const { User, Score } = require('./model')!(async () => { const updateRes = await User.update({ password: 'abc' }, { where: { userName: 'lisi' } }) console.log('updateRes: ', updateRes[0] > 0)})()
2020-07-22 00:06:30
5254
原创 04.sequelize 删除 destroy
const { User, Score } = require('./model')!(async () => { // 因为外键关系,当删除是会在外键关联的表的数据也删除 const delUserRes = await User.destroy({ where: { id: 1 } }) const delScoreRes = await Score.destroy({ where: { id: 5 } })
2020-07-22 00:02:37
3029
原创 03.sequelize 增加create
const { User, Score } = require('./model')!(async () => { const zhangsan = await User.create({ userName: 'zhangsan', password: '123' }) console.log('zhangsan: ', zhangsan.dataValues)})()
2020-07-21 23:12:09
1955
1
原创 02.sequelize创建模型,外键关联简述
https://github.com/demopark/sequelize-docs-Zh-CNconst Sequelize = require('sequelize')const seq = require('./seq')// 默认情况下,当未提供表名时,Sequelize 会自动将模型名复数并将其用作表名.// 这种复数是通过称为 inflection 的库在后台完成的,因此可以正确计算不规则的复数(例如 person -> people).// 默认会自动创建 id crea
2020-07-21 21:54:15
1694
原创 01.sequelize的安装连接
// 安装 sequelize 模块npm install --save sequelize// 安装数据库连接模块npm install --save mysql2const { Sequelize } = require('sequelize')// 要连接到数据库,必须创建一个 Sequelize 实例. 这可以通过将连接参数// 分别传递到 Sequelize 构造函数或通过传递一个连接 URI 来完成const seq = new Sequelize('seqtest', 'ro
2020-07-21 18:23:51
147
原创 18.nodejs中pm2的一些配置
pm2可以自己实现记录日志,记录console打印的日志{ "apps": { "name": "pm2-test-server", // 进程名 "script": "app.js", //运行脚本路径 "watch": true, // 启动文件变化监控 "ignore_watch": [ // 忽略一些文件变化 "node_modules", "logs"
2020-07-20 21:05:45
170
原创 17.nodejs中koa2框架morgan写日志
const Koa = require('koa')// session 有关模块const session = require('koa-generic-session')const redis = require('redis')const RedisStore = require('koa-redis')// 日志有关的模块const morgan = require('koa-morgan')const path = require('path')const fs = requir
2020-07-20 00:27:39
841
原创 16.nodejs中koa2框架session的写入
const Koa = require('koa')// session 有关模块const session = require('koa-generic-session')const redis = require('redis')const RedisStore = require('koa-redis')const app = new Koa()app.keys = ['kaksk_12'] //设置签名cookie密钥app.use(session({ //session设
2020-07-20 00:12:58
218
原创 15.nodejs中express中间件的原理
app.use 用来注册中间件,先收集起来遇到 http 请求,根据 path 和 method 判断触发哪些实现 next 机制,即上一个通过next触发下一个const http = require('http')const slice = Array.prototype.sliceclass LikeExpress { constructor() { // 存放中间件列表 this.routes = { all: [], get: [],
2020-07-19 17:28:29
184
原创 14.nodejs中express框架使用morgan记录日志
const express = require('express')// 写日志需要用到的模块const path = require('path') // 获取文件路径const fs = require('fs') // 文件读写模块const rfs = require('rotating-file-stream') // 旋转文件流可以设置按指定时间写文件const morgan = require('morgan') // 日志模块// 本次 http 请求的实例cons
2020-07-19 12:50:05
829
原创 13.nodejs express框架session写入redis中
安装connect-redis中间件文档说明const redis = require('redis')const session = require('express-session') let RedisStore = require('connect-redis')(session)let redisClient = redis.createClient() app.use( session({ store: new RedisStore({ client: redisC
2020-07-19 00:51:44
322
原创 12.nodejs express框架session中间件的使用
安装express-session中间件const express = require('express')const cookieParser = require('cookie-parser')const session = require('express-session')// 本次 http 请求的实例const app = express()app.use(cookieParser()) // 配置cookie,会在req对象上生成cookie属性app.use(sessi
2020-07-19 00:32:09
244
原创 11.nodejs express框架cookie中间件的使用
1.安装cookie-parser中间件const express = require('express')const cookieParser = require('cookie-parser')// 本次 http 请求的实例const app = express()app.use(cookieParser()) // 配置cookie,会在req对象上生成cookie属性// 设置cookieapp.use((req, res, next) => { req.cook
2020-07-19 00:17:03
202
原创 10.nodejs express框架中间件机制
中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。中间件的功能包括:执行任何代码。修改请求和响应对象。终结请求-响应循环。调用堆栈中的下一个中间件。如果当前中间件没有终结请求-响应循环,则必须调用 next() 方法将控制权交给下一个中间件,否则请求就会挂起。应用级中间件应用级中间件
2020-07-18 18:45:56
163
原创 09.nodejs express框架中app.js简单介绍
app.js中一些配置// 引入一些模块var createError = require('http-errors');var express = require('express');var path = require('path');var cookieParser = require('cookie-parser');var logger = require('morgan');// 导入路由var indexRouter = require('./routes/index');
2020-07-18 17:47:38
372
原创 08.nodejs利用stream流的方式读取写入文件
直接通过文件操作来读取文件内容,readFile,会造成内存资源消耗过大等问题可以通过用流的方式来解决const fs = require('fs')const path = require('path')const fileName1 = path.resolve(__dirname, 'data.txt')const filename2 = path.resolve(__dirname, 'data-back.txt')// 读取流const readStream = fs.creat
2020-07-17 11:55:14
1538
原创 07.nodejs文件操作
const fs = require('fs')const path = require('path')const fileName = path.resolve(__dirname, 'data.txt')// 读取文件内容fs.readFile(fileName, (err, data) => { if (err) { console.error(err) return } console.log(data.toString())})// 写入文件
2020-07-15 12:28:00
94
原创 06.mysql连接redis
const redis = require('redis')// 创建客户端const redisClient = redis.createClient(6379,'127.0.0.1')redisClient.on('error', err => { console.error(err)})// 测试redisClient.set('name','zhangsan',redis.print)redisClient.get('name', (err, val) => {
2020-07-15 09:36:40
241
原创 05.nodejs连接mysql数据库
// 引入mysql模块const mysql = require('mysql')// 创建连接对象const con = mysql.createConnection({ host: 'localhost', user: 'root', password: '10271027', port: '3306', database: 'myblog'})// 开始链接con.connect()// 执行sql语句const sql = 'select * from u
2020-07-13 22:26:10
106
原创 04.nodejs处理post请求简述
//引入nodejs内置http模块const http = require('http');//创建http服务实例serverconst server = http.createServer((req, res) => { //判断请求方法是否是POST if (req.method == 'POST') { //打印POST方法发送的数据的格式,是发送请求时设置的 console.log(`content-type: ${req.headers['content-
2020-07-10 17:03:27
631
原创 03.nodejs处理get请求简述
// 引入内置http,querystring模块const http = require('http');const querystring = require('querystring');//创建http服务实例serverconst server = http.createServer((req, res) => { console.log(`method: ${req.method}`); //请求方法 const url = req.url; //请求地址 con
2020-07-10 16:46:44
163
原创 02.http请求概述
1.DNS解析,建立TCP连接,发送http请求DNS解析首先会搜索浏览器自身的DNS缓存,(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身缓存中是否有对应的条目,并且没有过期,如果有且没有过期,解析到此结束如果浏览器缓存没有,浏览器会搜索操作系统自身的DNS缓存,如果存在并没有过期,解析到此结束。如果操作系统自身没有,会向DNS服务器发起域名解析请求TCP连接客服端的请求送达服务端,首先是建立TCP连接Client首先发送一个连接试探,ACK=0 表示确认号无效,
2020-07-10 16:03:54
370
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人