自定义博客皮肤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 105

原创 爬虫设计概念

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

2020-09-22 12:04:44 169

原创 spider-gaode-3

import requestsimport jsonimport timeimport pandas as pdimport hashlibimport randomfrom django.shortcuts import render,HttpResponsefrom . import modelssl = set() # url存储count = 0 # key计数req_count = 0 # 请求数量keys = ['227b360433411dd173a81ab636a8

2020-09-14 17:41:11 203

原创 spider-gaode-2

import requestsimport jsonimport timeimport pandas as pdimport hashlibimport randomsl = set() # url存储count = 0 # key计数keys = ['227b360433411dd173a81ab636a89543','227b360433411dd173a81ab636a89543']def getTypes(): df = pd.read_excel('./amap_poi

2020-09-13 16:56:03 159

原创 docker-安装-三要素

1、安装前提:

2020-09-13 10:19:05 95

原创 docker-前提知识

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

2020-09-13 10:14:58 169

原创 spider-df

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

2020-09-12 19:43:00 79

原创 gaode-spider

import requestsimport jsonimport timedef 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 137

原创 scripy-spider

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

2020-09-12 09:59:53 95

原创 docker

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

2020-09-06 10:11:31 67

原创 mongodb使用

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

2020-08-22 19:51:55 85

原创 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 328

原创 Vue-前端面试

1、ui库怎么选择?

2020-08-16 20:38:55 74

原创 项目上线相关配置

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

2020-08-16 12:09:41 145

原创 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-32、push()和pop()(原数组改变)//push(): 把里面的内容添加到数组末尾,并返回修改后

2020-08-14 10:38:36 131

原创 项目优化

1、利用babel-plugin-transform-remove-console在执行build期间移除所有consolebabel.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 96

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

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

2020-08-13 07:47:31 243

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

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 814

原创 node+webSocket连接设备

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

2020-08-11 15:07:47 275

原创 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 105

原创 es6编程风格

1、块级作用域,用let取代varfor (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 95

原创 项目优化策略

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

2020-08-11 07:37:53 128

原创 前段问题单

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 97

原创 mongodb+express api接口

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

2020-07-30 15:41:14 212

原创 Inno setup 软件安装

目录:/bin/AutoEtax/%PKGDIR%/depend/install/setUp.issimage/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 263

原创 实现页面合理跳转

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 76

原创 label文字两端对齐

text-align-last:justify;

2020-07-22 17:26:04 1254

原创 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 130

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

common/readCmd.jsvar 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 781

原创 布局居中不贴边

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

2020-07-17 22:22:55 154

原创 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 288

原创 mysql - init

//创建数据库CIMSCREATE 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 184

原创 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 162

原创 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 433

原创 权限设计

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

2020-07-16 16:56:57 107

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

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 484

原创 创建用户-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 174

原创 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 169

原创 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 240

原创 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 120

空空如也

空空如也

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

TA关注的人

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