这是我在github上看到的一种实现方式,仅做学习使用,并不是就是最好的解决方案。 首先,服务端要支持这两个请求:/token和/user,/token是根据email和密码获取id_token,/user是根据之前获取到的id_token再去获取用户的基本信息,AuthService.js封装了这两个信息的请求和存...
CMake简单用法
CMake简单用法 静态库 编译生成静态库,目录结构如下: learncmake static CMakeLists.txt static_math.h static_math.cpp static_math.h pragma once int mysqrt(int a); static_math.cpp include "static_mat...
is_block_type_valid(header->_block_use)
使用visual studio2015调试一段代码在出某个作用域的时候总是弹出这个断言错误,猜测在出作用域的时候会释放掉局部变量,所以当我把局部变量改为static的时候果然没有出错,这样改肯定不能解决根本问题。 后来发现是库版本不匹配的问题,我用的dll是vs2013编译出来的,而使...
JAVA8 十大新特性详解
JAVA8 十大新特性详解 > 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API “Java is still not dead—and p...
AStyle格式化代码
通过Node.js脚本来调用AStyle.exe格式化代码。 src:需要格式化的代码目录 params:AStyle参数,默认使用linux风格 filterNameList:不进行格式化的目录,跳过这些目录 regSuffix:需要格式化的文件名正则 const fs = require('fs') const path = require(...
一张图展示google c++ 代码规范
![一张图展示google c++ 代码规范](https://www.ningto.com/upload/6CA11A153C81A9438B55B9F15C2E746C.png) > 如果看起来太小可以在新的标签页中打开。...
windows安装包制作
我们使用Qt官方提供的安装包制作框架qt-installer-framework来打包我们的应用程序,同时它支持三个平台:Windows,Linux,OS X。 功能强大,用起来也很方便,这里只介绍一下基本用法,完全能满足我们的要求。 qt-installer-framework下载地址: http://download.qt.io/of...
visual studio中props文件用法
使用visual studio IDE经常要进行一些工程属性的配置,通常是引入第三方库。如果库比较多的话每次建新工程都要配置一下比较麻烦,.props文件可以帮助我们把一些固定的配置写好,下次使用的时候直接import到vcxproj文件中就可以了。.props中的配置相当于vcxproj配置中的一部分...
解决github慢的问题
每次clone项目非常慢只有几十kb,稍微大一点的项目要花费蛮长的时间而且中途可能会断掉,下面方法可以解决这个问题。 获取github域名对应的IP地址 访问[https://www.ipaddress.com](https://www.ipaddress.com)(如果不行的话可能要翻墙)网站,分别查询:github.com和git...
http升级到https
环境:腾讯云服务,nodejs服务,nginx反向代理 获取证书 获取证书有多重途径,我是在腾讯云申请免费版DVSSL证书(一年期限) 登录腾讯云 选择云产品->域名与网站->SSL证书管理->申请证书 上传证书 根据不同服务器选择相应的证书文件,我用的是nginx。 如将1_...
boost asio使用技巧
最近尝试使用了一下Boost.Asio,不知道是否因为各大公司都有自己相对成熟的网络库的缘故,网络上Asio相关的资料实在不多,而且很多翻来覆去就是那几个简单的示例,所以打算自己小结一下。总的来说Boost.Asio是个非常易用的库,避免了你在各种系统底层API之间的挣扎,让你可以非...
字符串 单词 翻转
如将字符串"abcdef"的前两个字符翻转到后面变成"cdefab"。 整个字符串可以分为左边和右边两部分,翻转思路是: 将左边字符串反序("ab"变成"ba") 将右边字符串反序("cdef"变成"fedc") 左右部分反序后的组合是"bafedc" 最后将整个字符串反序("bafedc"变成"cdefa...
c++ 性能优化策略
大的方面:程序架构,算法,数据结构。 1 关于继承:不可否认良好的抽象设计可以让程序更清晰,代码更看起来更好,但是她也是有损失的,在继承体系中子类的创建会调用父类的构造函数,销毁时会调用父类的析构函数,这种消耗会随着继承的深度直线上升,所以不要过度的抽象和继承。...
简单有理数(Rational)实现
class Rational { public: Rational(int a = 0, int b = 1) : a_(a), b_(b) { } Rational(const Rational &rhs) : a_(rhs.a()), b_(rhs.b()) { } const Rational operator=(const Rational& rhs) { return Rational(rhs.a_, rhs.b_)...
C++惯用法
虚基类中要实现virtual析构函数 否则,在下面的例子中子类Dog得不到释放 include <iostream> include <memory> class Animals { public: Animals() { std::cout << "Animals" << std::endl; } virtual ~Animals() // 一定要是virtual析构 { ...
C++ windows实用函数
收集的一些比较实用的函数,头文件依赖(不包括全部): include <TlHelp32.h> include <psapi.h> include <Windows.h> include <time.h> include <algorithm> include <iterator> include <io.h> include <direct.h> include <assert.h> include <sstream> ...
bug修复,for循环倒叙遍历的时候千万不要用size_t等无符号整型
bug修复,for循环倒叙遍历的时候千万不要用size_t 如下代码: std::vector<int> x = { 1, 2, 3, 4, 5 }; for (size_t i = x.size() - 1; i >= 0; i--) { std::cout << x[i] << std::endl; } 由于size_t是unsigned int无符号整型,所以当i为0时候再继续i...
C++ String正确实现以及关键点
正确实现String可以考察C++的一些基本功,稍不注意就会出错,下面来列举一下关键点: 1. 构造函数,拷贝构造,赋值操作符是必须的; 2. 成员初始化列表执行顺序; 3. c_str()不要返回空指针; 4. 实现swap函数; 5. 分配内存的时候要用外面传进来的size; 6. 赋值操作符的实...
我的云服务器开机自启动所有服务
我的云服务器上目前部署的是我的博客,每次重启服务器都要重启一下所有程序蛮麻烦的,所以这次把它自动化了。重启系统后自动执行脚本部署所有服务。 目前服务器上如下服务需要重启: nginx:反向代理 mongodb:数据库 3inns:我的博客 ningto:新版博客(react) Node...
CentOs7 防火墙firewalld基本使用方法
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disable firewalld 禁用: systemctl stop firewalld 2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig...