• 分类:【MongoDd
  • 浏览【35】
  • 评论【0】
  • 更新【2020-6-19 15:57:09】

在go mongo中查询是使用的是bson.M类型的条件,但是直接使用时无法动态添加条件,只能初始化赋值,bson.M其实就是map类型,只能使用someMap["someKey"]="someValue" 的形式添加,这样的话只能是用if判断字段的值来决定是否添加map key/value,写起来比较繁琐。还有一种是利用结构体转换为bson.M来实现。 //构造一个条件变量 condition := bson.M{} //将结构体转为字节数组,userInfo中的字段根据需要设置值,需要保证没有值时不会有默认值出现 userbyte, err :

阅读全文
  • 分类:【疑难杂症
  • 浏览【55】
  • 评论【0】
  • 更新【2020-6-15 12:36:50】

(node:9828) UnhandledPromiseRejectionWarning: TypeError: text is not iterable at Keyboard.type (D:\workspace\auto-ui\node_modules\puppeteer-core\lib\Input.js:160:24) at Keyboard. (D:\workspace\auto-ui\node_modules\puppeteer-core\lib\helper.js:112:23) at openBrowser (D:\workspace\auto-ui\

阅读全文
  • 分类:【系统架构
  • 浏览【219】
  • 评论【0】
  • 更新【2020-5-10 11:44:34】

前言 接上篇《说道说道前后端分离》今天再次对前端现状作一次分析(吐槽)。 再次引用一句《穷查理宝典》中的理论: 在手里拿着锤子的人看来,所有的东西都会是钉子。 因为有锤子的关系,遇到任何问题,都会先想如何用锤子解决。久而久之,陷入了一种思维定式。任何工具带来便利的同时,也带来了局限性。而这往往是用锤子的人很难看到的。 事出有因 这种现状在开发圈内决不少见,不仅限于前端。本文只说说前端的现状,原因是笔者最近在工作中遇到一个棘手的问题:性能优化。 最近接手了多个现有的前端项目,是公司比较核心的移动端官网,作为门户网站访问量和用户量都比较大,但是随着项目的迭代出现了性能问题,页面加载速度在W

阅读全文
  • 分类:【工具使用
  • 浏览【160】
  • 评论【0】
  • 更新【2020-4-15 19:36:56】

为什么需要UI自动化? 说起自动化,听着很厉害,可是也没见识过到底多厉害,基本是属于传说,没见过实战。但不能否认其价值,作者本人作为一个开发者也是偶然的机会接触到UI自动化,感受到了自动化的魅力,才不惜花时间来学习并使用在实际工作中。下面就来说一下为什么要做自动化。 自动化有很多种,单元测试,接口测试,UI测试。所有测试过程可以形成这样一个金字塔: (图片来自网络) (图片来自网络) 从图中看出底层测试简单快速,每个单元相对独立,测试成本也较低。而最顶层的UI层聚合了底层的很多接口服务,一个测试流程相对更长更复杂,也就导致了速度慢,成本高的问题。如果由人工来完成,一个完整的测试流程往往需要

阅读全文
  • 分类:【MongoDd
  • 浏览【125】
  • 评论【0】
  • 更新【2020-4-07 11:28:06】

mongodb提供了免费的mongdb集群可用于学习使用 https://www.mongodb.com/cloud 并且有3个节点 mongodb Atlas免费集群存储空间为512M,这对于个人项目来说足够使用(本博客运行6年使用空间8M)。 本地客户端连接mongo Atlas 复制了连接字符串后直接粘贴到客户端中,替换<password>,点击From SRV,会自动拉取集群配置,点击Test测试连接是否成功。

阅读全文
  • 分类:【Golang
  • 浏览【131】
  • 评论【0】
  • 更新【2020-4-06 23:14:10】

在之前mgo是一个使用广泛的mongodb驱动器,不过从2018年开始已不再维护,虽然觉得怪可惜的,但也不推荐使用了,毕竟mongodb本身一直在迭代,如果驱动器不更新后续也没法使用。 详细说明见仓库:https://github.com/go-mgo/mgo 而mongodb提供了官方驱动,目前能找到的中文文档大多比较旧了,推荐直接看官方文档,有完整的操作手册:https://www.mongodb.com/blog/search/golang 本文也不想做一次搬运工,毕竟也不能随时保持更新,还是直接看官方文档比较好。下面列出一些主要的文章链接: Stack Overflow Resear

阅读全文
  • 分类:【MongoDd
  • 浏览【133】
  • 评论【0】
  • 更新【2020-4-04 09:58:04】

使用mongodb数据库时有这样的场景,使用可视化工具登陆了某个数据库blogs,然后又创建了数据库website,给website数据库添加用户hp_website db.createUser( {user: "hp_website",pwd: "xxxxxx",roles: [ { role: "userAdmin", db: "website" },{ role: "dbAdmin", db: "website" },{ role: "dbOwner"

阅读全文
  • 分类:【Nodejs
  • 浏览【144】
  • 评论【0】
  • 更新【2020-4-02 16:42:11】

pm2支持远程部署服务,创建文件ecosystem.json,内容形式如: { // Applications part "apps" : [{ "name" : "API", "script" : "app.js", "env": { "COMMON_VARIABLE": "true" }, // Environment variables injected when starting with --env production // http://pm2.keymetrics.io/docs/usage

阅读全文
  • 分类:【Golang
  • 浏览【255】
  • 评论【0】
  • 更新【2020-3-30 10:29:13】

gorm概述 全功能ORM(几乎) 关联(包含一个,包含多个,属于,多对多,多种包含) Callbacks(创建/保存/更新/删除/查找之前/之后) 预加载(急加载) 事务 复合主键 SQL Builder 自动迁移 日志 可扩展,编写基于GORM回调的插件 每个功能都有测试 开发人员友好 已上支持基本满足了日常开发需要,一些基本的查询需求可以查看文档得到解决,不过文档并没有覆盖所有日常开发案例,尤其是一些组合需求,本文挑了一段常见的场景。 func (u *userService) GetuserList(offset, limit int, search User) (users []

阅读全文
  • 分类:【Golang
  • 浏览【473】
  • 评论【0】
  • 更新【2020-3-17 17:41:28】

线上部署 在线上部署就不能使用go run main.go命令了,需要打包编译成可执行文件。 linux系统需要这样编译:GOOS=linux go build -o service main.go,就是在windows系统上进行交叉编译,可根据自己服务器情况修改参数。 go build -o service main.go go build -o api api/api.go 线上的restful api也不能使用micro api了。需要选择适合自己的web服务框架,在web服务中调用api服务。 etcd启动 线上etcd和本地启动有区别,如果etcd是单独的服务器,那么在不加任何参

阅读全文