自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 收藏
  • 关注

原创 docker命令

2020-10-31 11:49:51 165

原创 爬虫设计概念

有任务表,结果表 1、创建表 2、添加任务 首先查看是否创建任务表 - 创建了 是否有任务 没有的话添加任务 有 return - 没有创建任务表 3、执行任务 while True: 获取任务表里tag =1的任务 ...

2020-09-22 12:04:44 268

原创 spider-gaode-3

import requests import json import time import pandas as pd import hashlib import random from django.shortcuts import render,HttpResponse from . import models sl = set() # url存储 count = 0 # key计数 req_count = 0 # 请求数量 keys = ['227b360433411dd173a81ab636a8

2020-09-14 17:41:11 363

原创 spider-gaode-2

import requests import json import time import pandas as pd import hashlib import random sl = set() # url存储 count = 0 # key计数 keys = ['227b360433411dd173a81ab636a89543','227b360433411dd173a81ab636a89543'] def getTypes(): df = pd.read_excel('./amap_poi

2020-09-13 16:56:03 257

原创 docker-安装-三要素

1、安装前提:

2020-09-13 10:19:05 152

原创 docker-前提知识

1、前提知识 强制:熟悉linux命令 建议:git 2、docker为什么会出现 职责 开发交付-镜像(代码 war包,配置,系统,数据),运维ubunto centos上部署 运维和开发产生问题的地方 环境、配置 3、什么是docker? 解决了运行环境和配置问题的软件容器,方便持续集成并有助于整体发布的容器虚拟化技术 4、docker能干嘛? 1)传统虚拟机:一种操作系统运行另一种操作系统(应用程序、操作系统和硬件三者逻辑不变),其实就是个文件,不用了就删掉,对其他部分毫无影响 缺点

2020-09-13 10:14:58 269

原创 spider-df

import pandas as pd df = pd.read_excel('./amap_poicode.xlsx',sheet_name='POI分类与编码(中英文)') print(df.iloc[:,1])

2020-09-12 19:43:00 129

原创 gaode-spider

import requests import json import time def getjson(page): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36' } pa = { 'key': '227b36043341

2020-09-12 17:03:06 210

原创 scripy-spider

1、 是什么? 是一个非常强大的爬虫框架,框架,已经为你实现了好多功能,你只需要将你的精力放到自己的业务逻辑中即可。多进程、多线程、去重队列,框架为你实现好了,你不用管。底层语言使用python实现的,所以你可尝试看源码学习它 2、安装:pip install scrapy 3、认识框架 引擎(engine)、调度器(scheduler)、爬虫(spiders)、管道(pipeline)、下载器(downloader) 4、工作原理 见百鸟朝凤图 5、使用 (1)新建工程 scrapy startproje

2020-09-12 09:59:53 152

原创 docker

1、什么是docker? 2、为什么要用docker? 3、能解决什么问题? 4、跟大家有什么关系? 目标:部署一套服务 条件:一台电脑,具备软件(lamp、lnmp) 问题:业务添加,添加电脑,1,2,3,4,5 … n,多台机器安装设计node版本,npm版本 解决:docker docker: 容器、镜像、仓库 镜像:类似windows系统,也可以是一个压缩包-可复制 通过命令-> 容器 ...

2020-09-06 10:11:31 118

原创 mongodb使用

mongodb文档 官网 1、安装 参考博客

2020-08-22 19:51:55 135

原创 node面试问题

1、什么虚拟DOM? 博文参考 2、什么是长连接和短连接? 博文参考 3、前端接收的数据怎么优化? 从数据上处理:分页分表,比如前端可以把数据分页展示,后端也分段吐数据 从渲染上解决:2.1 异步渲染,比如进入页面先不渲染,然后加载好页面再渲染。2.2 局部渲染:只渲染目前可见区域的数据,再渲染次屏数据。2.3 还有性能瓶颈,可以考虑web worker 做压缩和解码,也可以考虑离屏canvas做预渲染。3. 减少网络耗时:压缩数据,gzip等 4、浏览器或移动端适配 参考博文 5、websocket和ge

2020-08-20 10:16:37 418

原创 Vue-前端面试

1、ui库怎么选择?

2020-08-16 20:38:55 151

原创 项目上线相关配置

1、通过node创建web服务器 2、开gzip配置(针对服务端) 开启文件的Gzip服务网络传输压缩 cnpm i compression -D const compression = require('compression') //一定将这段代码放到静态托管之前 3、配置https服务 const options = { cert:fs.readFileSync('./full-chain.pem'), key:fs.readFileSync('./private.key') }

2020-08-16 12:09:41 213

原创 js常用数组方法

改变原数组函数:push、pop,shift、unshift,sort(需函),reverse,splice 不改变原数组函数:join,slice,foreach,map(需函),filter(需函),every(需函),some(需函) 1、数组中元素拼接(join())(原数组不会改变) var arr = [1,2,3]; console.log(arr.join('-'))//1-2-3 2、push()和pop()(原数组改变) //push(): 把里面的内容添加到数组末尾,并返回修改后

2020-08-14 10:38:36 215

原创 项目优化

1、利用babel-plugin-transform-remove-console在执行build期间移除所有console babel.config.js //注意把包在装开发依赖里 // 这是项目发布阶段需要用到的babel插件 const prodPlugins = []; if(process.env.NODE_ENV == 'production'){ prodPlugins.push('transform-remove-console'); } module.exports = { pr

2020-08-14 07:13:40 178

原创 电商系统--git使用小结

1、使用git //情形一、前提:远程未存在该分支,内容:本地提交(本地)-> master合并并push(master)->将本地分支在云端存储(本地) git add .(login) git commit -m ''(login) git checkout master git merge login git push //把本地分支在云端存储 git checkout login git push -u origin login //情形二、前提:远程未存在该分支,内容:本地提

2020-08-13 07:47:31 334

原创 命令行添加数据库数据

const fs = require('fs'); const mysql = require('mysql'); function query(sql, params, mysql_host, mysql_user, mysql_pass, mysql_db, mysql_port, callback) { var connection = mysql.createConnection({ multipleStatements: true, host: mysql_host, user: m

2020-08-12 13:46:44 901

原创 node+webSocket连接设备

app.js var wsWorkStation = require('./lib/wsWorkStation'); wsWorkStation.initWorkStations(); lib/wsWorkStation const WebSocket = require('ws'); const log4js = require('../log-config'); const logger = log4js.getLogger('wsclient'); const db = require('./my

2020-08-11 15:07:47 375

原创 es6-补充项

1、 解构赋值 交换变量 let x = 1; let y = 2; [x, y] = [y, x]; 函数返回多个值 // 返回一个数组 function example() { return [1, 2, 3]; } let [a, b, c] = example(); // 返回一个对象 function example() { return { foo: 1, bar: 2 } } let { foo, bar } = e

2020-08-11 12:02:06 162

原创 es6编程风格

1、块级作用域,用let取代var for (let i = 0; i < 10; i++) { console.log(i); } 2、全局常量和线程安全,在全局环境应该设置常量const,多使用const提高程序的运行效率 const [a, b, c] = [1, 2, 3]; 3、静态字符串使用单引号,动态字符串使用反引号 const a = 'foobar'; const b = `foo${a}bar`; 4、使用数组成员对变量赋值,优先使用解构赋值 const arr = [1

2020-08-11 11:36:04 135

原创 项目优化策略

1、生成打包报告 2、第三方库启用cdn 3、element-ui 按需加载 4、路由懒加载 5、首页内容定制 通过nprogress添加进度条效果 main.js cnpm i nprogress -S import './permissions' permissions.js import store from './src/store/index' import router from './src/router/index' import NProgress from 'nprogress'

2020-08-11 07:37:53 202

原创 前段问题单

1、左侧菜单栏长度如何动态变换 :width="isCollapse ? '50px':'200px'" 2、主子路由及router-view设置 @/views/home.vue <el-main> <h3>Welcome</h3> <!-- 匹配菜单栏路由区域 --> <router-view></router-view> </el-main> router/index.js

2020-07-31 08:13:32 146

原创 mongodb+express api接口

mongoose.json {"url":"mongodb://192.168.40.194:35248/cims_db","user":"cims","pass":"cims123$%"} app.js var strMongodb = fs.readFileSync('./public/settings/mongodb.json', 'utf-8'); var mongodbSettings = JSON.parse(strMongodb); mongoose.connect(mongodbSett

2020-07-30 15:41:14 292

原创 Inno setup 软件安装

目录: /bin/AutoEtax/%PKGDIR% /depend/install/setUp.iss image/bin/Win32/realase/安装文件 ;指定名字 #define MyAppName "CIMSDataCenter" #define MyAppVersion "1.0.3" #define MyAppPublisher "fuyoo" #define DirName "CIMS" ;安装和卸载程序所使用的全局设置(必选) [Setup] ;AppId决定卸载注册表的真实值,不能

2020-07-30 10:20:01 383

原创 实现页面合理跳转

permissions(路由全局守卫) const whiteList = ['/login']; if (getToken()) { if (to.path == '/login') { next(); } else { // 读取用户信息,用户信息不存在,返回登录页面,存在next() store.dispatch('GetInfo').then(res => { if(res.code){ next('/login') }else{ next();

2020-07-27 08:35:07 141

原创 label文字两端对齐

text-align-last:justify;

2020-07-22 17:26:04 1551

原创 node - 确认软件

/validate/main.js //安装文件确认 const readFile = require('../common/readFile')//读取目录路径下文件的函数 const path = require('path'); const installPath = path.resolve('../../');//被对比目录路径 const contrastArr = require('../conf/contrastFileName')//对比文件 const contrastFileFun =

2020-07-21 17:22:45 197

原创 软件确认-node注册表的查询 添加

common/readCmd.js var exec = require("child_process").exec; const iconv = require('iconv-lite'); module.exports = function myTest(path,callback) { return new Promise(function(resolve, reject) { var cmd = path exec(cmd,{ encoding: 'bu

2020-07-21 10:12:14 952

原创 布局居中不贴边

position absolute left 50% top 50% tansform translate(-50%.-50%) 元素居中(上下,左右元素补贴边) display:flex align-items:center

2020-07-17 22:22:55 209

原创 node.js按行读取文件

const readline = require('readline') const path = require('path') const fs = require('fs') let filePath = path.join(__dirname,"df.txt"); let input = fs.createReadStream(filePath); const rl = readline.createInterface({input:input}) rl.on('line',(line) =&g

2020-07-16 20:26:56 405

原创 mysql - init

//创建数据库CIMS CREATE DATABASE cims_db DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; //创建cims用户 CREATE user 'cims'@'%' IDENTIFIED BY 'cims123$%'; //授权用户 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE ON cims_db.* TO 'cims'; FLUSH PRIVILEGES; ...

2020-07-16 17:23:14 279

原创 express-common篇

const os = require("os"); const interfaces = require('os').networkInterfaces(); const fs = require('fs'); const path = require('path'); module.exports.GetIpaddr = function(){ var ipaddrs = []; for(var devName in interfaces){ var iface = interfaces[dev

2020-07-16 17:16:30 256

原创 app.js-token验证-错误(500)提醒设计

app.use("*", function (req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"); res.header("Access-Control-Allow-Methods", "PU

2020-07-16 17:07:19 607

原创 权限设计

设计思想: 1、拿到请求的url,/api/uses/addUsers 和对照表/conf/authAndApi.js,找到对应的permition:addUsers 2、数据库中查找当前登录用户的所有权限(整合) 3、根据请求的permition addUsers和数据库中的addUsers的值做比较 /conf/authAndApi.js module.exports = [ {permition:'addUsers',authnanme:"添加用户",baseurl:'/api/users/a

2020-07-16 16:56:57 151

原创 验证用户名、密码规范

var validator = require('validator'); module.exports.checkUserName = function (user, callback) { var p1 = '^[a-z]{2,9}([0-9]{0,2})?$'; if (!validator.matches(user, p1)) { return callback("Please re-enter your username,规则:[姓(全拼)+ 名简](必须是小写子母,最少2位,最多9位)+

2020-07-16 16:05:29 614

原创 创建用户-api

var bodyParser = require('body-parser'); /*使用局部解析*/ var bcrypt = require('bcryptjs'); router.post('/addUsers', bodyParser.json(), function (req, res, next) { logger.info('API:"post /api/users/addUsers" accessed.'); var password = req.body.password ? req

2020-07-16 15:52:16 264

原创 Node-循环异步

var successUser = []; var failedUser = []; var actions = []; var importSaveUser = function (index, item, callback) { db.query(UserSql.getNextUserNo, [], function (err, rows) { if (err) { logger.error("Database operation error! error:" + err);

2020-07-16 14:22:46 247

原创 express-分页-api

router.get('/userList', function (req, res, next) { logger.info('API:"/api/users/userList" accessed'); var pageNum = req.query.pageNum ? Number(req.query.pageNum) var pageSize = req.query.pageSize ? Number(req.query.pageSiz req.query.username ? (ayy

2020-07-16 14:15:53 357

原创 node.js-软件安装包确认

const path = require('path'); const fs = require('fs'); const contrastArr = require('../conf/contrastFileName') const installPath = path.resolve('../../'); const filesList = []; const getFiles = function (confirmPath) { let files = fs.readdirSync(confir

2020-07-16 11:00:20 178

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除