InfluxDB实践:从MongoDB迁移到时序数据库的开发体验
前言我之前的节点数据是全都存到 mongoDB 中的。偶然的机会,发现了 InfluxDB 这种时序数据库。于是花了点时间简单使用一些,看看是否能替换 mongoDB 存储历史数据。 InfluxDB 简介InfluxDB 是一个开源时序数据库。适合处理分析资源数据监控相关数据。 https://docs.influxdata.com/influxdb/v1.6/ 安装目前最新版本为 v1.6。 安装 InfluxDB 的方式很简单(Ubuntu) $ curl -sL <https://repos.influxdata.com/influxdb.key> | sudo apt-key add - $ source /etc/lsb-release $ echo "deb <https://repos.influxdata.com/${DISTRIB_ID,,}> ${DISTRIB_CODENAME} stable" | sudo tee...
Egg.js与ThinkJS框架对比:Node.js企业级开发实践分析
@[toc](Egg.js VS Thinkjs 简单分析使用) 命令行脚手架Egg.js12345$ npm i egg-init -g$ egg-init egg-example --type=simple$ cd egg-example$ npm i$ npm run dev 打开浏览器访问 http://127.0.0.1:7001/ Thinkjs12345$ npm install -g think-cli$ thinkjs new demo;$ cd demo;$ npm install;$ npm start; 打开浏览器访问 http://127.0.0.1:8360/ 从创建项目的脚手架来看两者基本一致,但是 think-cli 支持 使用命令行创建 controller、service、model 等 123$ thinkjs controller <controller-name> [module-name]$ thinkjs service <service-name> [module-name]$ thinkjs...
mpvue微信小程序开发入门:从环境搭建到实战应用
需要了解一些原生小程序开发流程,主要是接口调用方式和目录结构。 安装1234567891011# 全局安装 vue-cli$ npm install --global vue-cli# 创建一个基于 mpvue-quickstart 模板的新项目$ vue init mpvue/mpvue-quickstart my-project# 安装依赖$ cd my-project$ npm install# 启动构建$ npm run dev 设置底部导航栏 添加一个页面 1234mkdir democd demotouch index.vuetouch main.js main.js 1234import Vue from "vue";import App from "./index";const app = new Vue(App);app.$mount(); index.vue 12345678910111213<template> ...
Flask与MySQL集成:构建Python Web应用数据库
python3 flask 使用 Mysql 数据库 创建 flask 基本项目结构 12from flask import Flaskapp = Flask(__name__) 安装flask-sqlalchemy 1pip install flask-sqlalchemy 导入配置 123456from flask_sqlalchemy import SQLAlchemyapp.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:root@localhost/hhh'app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = Trueapp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Truedb = SQLAlchemy(app) python3 不再支持 MySQKdb,连接 mysql 数据库需要使用 pymysql 安装...
vue-cli3使用和Cordova集成记录
1. 安装安装过程很简单 123npm install -g @vue/cli# ORyarn global add @vue/cli 安装后使用vue --version查看是否安装成功 2. 创建项目123vue create demo# ORvue ui #使用ui界面进行创建 选项 默认 手动选择 我们选择手动选择功能,具体选择如下 1234567? Please pick a preset: Manually select features? Check the features needed for your project: Babel, Router, Vuex, CSS Pre-processors, Linter? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): LESS? Pick a linter / formatter config: Prettier? Pick additional lint...
Node.js与ThinkJS框架开发指南:构建高效Web应用
Node.jsNode.js 简述Node.js:简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 安装配置 (介绍在 window 和 Linux 上的安装 Node.js 的方法) Node.js 官方文档 官方文档介绍: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。事件驱动与异步 IO 的讲解 Node.js 的包管理器 npm,是全球最大的开源库生态系统。 认识包管理器 npm(npm 已经在安装 Node.js 的时候安装好了) 当我们在 Node.js 上开发时,会用到很多别人写的 JavaScript 代码。如果我们需要使用别人写的某个包,每次都根据名称搜索一下官方文档,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过 npm...
Angular核心功能详解:方法、指令、服务与过滤器
angular 方法1. 拷贝数组或对象1angular.copy(source, [destination]); 2. 选择一个元素1angular.element(element); //jqLite 3. 比较值是否相等1angular.equals(o1, o2); //返回值:boolean 4. 迭代对象1angular.forEach(obj, iterator, [context]); //iteeator是一个方法function(value,key,[obj]){处理代码} 5. 把 json 字符串转换为对象1angular.fromJson(json); 6.把对象转换为 json 字符串1angular.toJson(obj, pretty); //pretty为ture时,输出字符串有换行符和空格。如果设置为一个整数,JSON输出将包含许多空间每缩进(默认为2) 7. 判断是否为数组、时间、DOM...
JavaScript中this绑定规则详解:优先级与实践
判定 this现在,我们可以按照优先顺序来总结一下从函数调用的调用点来判定 this 的规则了。按照这个顺序来问问题,然后在第一个规则适用的地方停下。 函数是通过 new 被调用的吗(new 绑定)?如果是,this 就是新构建的对象。var bar = new foo() 函数是通过 call 或 apply 被调用(明确绑定),甚至是隐藏在 bind 硬绑定 之中吗?如果是,this 就是那个被明确指定的对象。var bar = foo.call( obj2 ) 函数是通过环境对象(也称为拥有者或容器对象)被调用的吗(隐含绑定)?如果是,this 就是那个环境对象。var bar = obj1.foo() 否则,使用默认的 this(默认绑定)。如果在 strict mode 下,就是 undefined,否则是 global 对象。var bar = foo() 以上,就是理解对于普通的函数调用来说的 this 绑定规则 所需的全部。是的……几乎是全部 摘自:You-Dont-Know-JS 用作备忘
CSS现代布局技术:Flexbox与Grid布局系统详解
Flex 布局 Flex 是弹性布局,使用display:flex或display: inline-flex指定为 flex 布局 默认 水平的是主轴,垂直的是交叉轴 容器的属性(属性第一个为默认值) flex-direction 主轴方向 row | row-reverse | column | column-reverse flex-wrap 项目换行方式 nowrap | wrap | wrap-reverse flex–flow 以上两个属性的缩写 justify-content 项目在主轴的对齐方式 flex-start | flex-end | center | space-between | space-around align-items 项目在交叉轴对齐方式 flex-start | flex-end | center | baseline | stretch align-content 多跟 轴线 的对齐方式,只有一根轴线则不起作用 flex-start | flex-end | center | space-between | space-around |...
vuex 学习笔记
state 记录所有数据和状态的,跨页面使用的 getters store 里的计算属性 12345678910111213141516{ state:{ aaa:2 }, getters:{ // 通过$store.getters.aaacheng2访问 aaacheng2:state=>{ return state.aaa*2 }, // 通过$store.getters.aaacheng(6)访问 aaacheng:(state)=>(n)=>{ return state.aaa*n } }}// mapGetters 辅助函数 将 store 中的 getter 映射到局部计算属性 mutation 用于修改 state 状态 1234increment (state, n) { state.count...