重拾小程序遇到的蛋疼问题集锦

话说又是几个月没动小程序了。

 

今天才发现无法鉴权,看了半天提示,一会儿说网络问题(确实遇到过网络问题,因为宽带断了),一会儿又502,一会儿又404,大部分情况下就是提示说鉴权服务器有问题。

其实这个提示是业务服务器提示的,但是因为它一会儿走socket一会儿走https,所以用fiddler老是抓不了包,导致我真以为是客户端开发工具升级导致的毛病,以为丫根本就没有联上网,盯着微信自己搞127.0.0.1的js看了半天(根本不可能看出什么鬼的,毕竟全是压缩过的代码,而且也没法打断点),天晓得控制台那一层层追的require是什么鬼。

后来突然fiddler又抓到包了,大概是走https的时候提示了证书问题,我允许了,这才发现小程序开发工具是上了网的。

好吧,去服务器看看。

从history里找以前查日志的路径,结果一找发现根本没有那些路径,我一开始以为是log文件夹被我删了,后来才想起来当时输入的路径也是错的,因为当时把业务服务器和会话服务器给搞混了。

其实腾讯官方这个wafer demo很蛋疼,小企业玩这个会话与业务分离的架构纯属无聊,何况我连小企业都不算。

当初搞的时候没有把人家的架构图看清楚,8月份看了一下,这回想起来了,那个负载均衡根本没有起什么分流的作用,只不过把请求转发给了业务服务器,业务服务器又让会话服务器做鉴权,所以应该先上业务服务器上看日志。

上去一看history,又回想起当初和腾讯那个工程师一起找问题的经过。于是用当时写的curl命令测试了一下会话服务器相关的页面,结果返回来的全是404,apache说没有object。

问题大概是找到了:

上次把国外服务器给停掉,一口气把各种玩意(包括这个博客)全都搬到国内来,在小程序的生产环境中配了一堆虚拟主机,这一配不要紧,原来小程序那个文件夹就404了。

一开始以为是权限问题,在httd-vhost.conf里写了一个全局的文件权限/跳转配置,没有用。

在业务服务器里用curl访问会话服务器,还是找不到相关的页面,后来一想,可不是找不到吗?其他的玩意全都成虚拟主机了,小程序的mina_auth作为第一个应用却无枝可依,就连根目录的Index.html也找不到。如果直接访问IP的话,会跳到这个博客首页上来,只好把小程序也给配成一个虚拟主机,配完再curl,果然有效。

但是这还不行,必须把sdk.config里的会话服务器地址给改掉,毕竟原来写的是ip加文件路径,现在既然成虚拟主机了,直接设成ip才符合逻辑,改完一重启,果然OK。

想来当初搬家之后好像确实没测试。但是话说昨天刚打开小程序的项目,似乎是可以登录的?

反正不管怎么说,这事是解决了。

有趣的是,服务器端的问题解决了,前端的问题好像也无医自愈了:

晚上刚打开开发工具的时候,报错说我那个全局变量没定义,难道是因为没有授权,连什么systemInfo都不让用?我当时想,不过就取个窗口宽高而已,怎么这么麻烦?没想到后端问题搞定,这个报错就直接消失了。

原本设想一天就把我想写的那个小程序搞定,现在只好又延期了。

这次跟上次一样,中途跑到小程序交流群去提问,屁用没有,最后还是自己解决了问题。

小程序出现3 not found wxss编译错误怎么办

好久没搞小程序了,打开开发工具就是疯狂地更新安装,安装了几个新版本之后,说写写代码,结果遇到wxss文件编译错误,而且最搞怪的是什么2 not found ……3 not found,这算什么提示?

还好我上网查了一下,不然得卡在这里不知道多久。

这里写图片描述

解决方案如下:在控制台输入openVendor() 打开文件夹, 自己打开此文件删除wcc.exe,wcsc.exe两文件即可! 输入无反应找到此文件夹找到指定文件删除即可。

有哪些必须熟练的BASH快捷键?

大部分快捷键其实没什么意义,我把它们划上了删除线,比较有价值的保留。特别有价值的加粗

编辑命令

  • Ctrl + a :移到命令行首
  • Ctrl + e :移到命令行尾
  • Ctrl + f :按字符前移(右向)
  • Ctrl + b :按字符后移(左向)
  • Alt + f :按单词前移(右向)
  • Alt + b :按单词后移(左向)
  • Ctrl + xx:在命令行首和光标之间移动(去上一次光标停留点,连按的话有种跳来跳去的感觉)
  • Ctrl + u :从光标处删除至命令行首
  • Ctrl + k :从光标处删除至命令行尾
  • Ctrl + w :从光标处删除至字首
  • Alt + d :从光标处删除至字尾
  • Ctrl + d :删除光标处的字符
  • Ctrl + h :删除光标前的字符
  • Ctrl + y :粘贴至光标后
  • Alt + c :从光标处更改为首字母大写的单词
  • Alt + u :从光标处更改为全部大写的单词
  • Alt + l :从光标处更改为全部小写的单词
  • Ctrl + t :交换光标处和之前的字符
  • Alt + t :交换光标处和之前的单词
  • Alt + Backspace:与 Ctrl + w ~~相同~~类似,分隔符有些差别,后者只能删除到空格处,但我们很多时候用管道符什么的是不会用空格的,所以这个极其有用。

重新执行命令

  • Ctrl + r:逆向搜索命令历史
  • Ctrl + g:从历史搜索模式退出
  • Ctrl + p:历史中的上一条命令
  • Ctrl + n:历史中的下一条命令
  • Alt + .:使用上一条命令的最后一个参数

控制命令

  • Ctrl + l:清屏
  • Ctrl + o:执行当前命令,并选择上一条命令
  • Ctrl + s:阻止屏幕输出
  • Ctrl + q:允许屏幕输出
  • Ctrl + c:终止命令
  • Ctrl + z:挂起命令

Bang (!) 命令

  • !!:执行上一条命令
  • !blah:执行最近的以 blah 开头的命令,如 !ls
  • !blah:p:仅打印输出,而不执行
  • !$:上一条命令的最后一个参数,与 Alt + . 相同
  • !$:p:打印输出 !$ 的内容
  • !*:上一条命令的所有参数
  • !*:p:打印输出 !* 的内容
  • ^blah:删除上一条命令中的 blah
  • ^blah^foo:将上一条命令中的 blah 替换为 foo
  • ^blah^foo^:将上一条命令中所有的 blah 都替换为 foo

复习:jquery的each和map的用法和注意事项

用Jquery的each和map,主要是顺手方便。性能什么的就不要考虑了。

不过有些事情必须知道,each这玩意是可以改变数组的。

而map则可以创建另外一个数组,function你直接return一个值,它就变成了数组成员。

比如:

var ne=$(‘a.color-m’).map(function(){return $(this).attr(‘href’).split(‘id=’)[1]}).get().join(‘|’)

用这个方法可以在某个页面上抓取ID然后做成一个用|分隔的字符串。

Nw-js中如何避免弹出新窗口?

摸索了如下几种方式:

1、使用iframe,然后对$('a[target=_blank]')进行处理,这个办法肯定是可以的,但是iframe太奇怪了,你把一个页面套在另外一个页面中,这样搞简直不是做本地程序的道理,虽然网上有人用iframe实现了一个浏览器,但对于有洁癖的人来说实在忍不了。

2、使用nw.Window,官方提供了一个所谓的new-win-policy事件来处理类似需求,然而根本没效果,从网上查外国论坛的说法,人家都说没见过任何成功的案例,所以从这个里跳出来的窗口仍然没有比较合理的处理办法,还是在DOM里查找$('a[target=_blank]')。google官方的文档里可以用chrome.App.window.getAll(),但是得到的Object其实根本没法处理。而且就算可以,我们也不能等窗口已经弹出再关掉吧?

3、使用<webview>tag,这个东西可以像iframe一样套在页面中,而且这个东西默认就是不许弹窗的,chrome官方还提供了newwindow事件来通知我们有人要弹窗了,你不必跑到dom里去挑三拣四,所以这个是最好的办法,但问题这个标签根本不稳定,遇到动不动就崩溃,而且无法找到原因,看样子和flash有关。(12/4更新:我已经搞定,目前已无崩溃现象)

官方文档2:webview tag

我记得很多年前我搞过electron,但现在只记得有这么一回事,而不知道怎么搞了。而且相关的工具链太长了,Nw-Js好像简单很多,所以选择了nw-js,但是现在感觉有点后悔,还不如直接搞IE内核。

 

chrome浏览器主页被sougo.exowangdan.com劫持怎么办

其实我已经忍了很久了。

chrome浏览器主页被http://sougo.exowangdan.com:6060劫持了几年了。

虽然没看出什么危害来,但是始终觉得不对劲。

今天找到一个简单的办法来解决它。

就是把chrome.exe改成fuck.exe

当然,你也可以改成fuckyou.exe

改成xx.exe都行。

总之让流氓找不到chrome.exe就行了。

不过这么干完了,自己改主页也改不了,根本没用,就是出新标签页而已。

但是把这个“新exe”的快捷方式给锁定到任务栏之后,从任务栏里启动就会按照设置里的主页显示了。

bing的妙用

这年头,科学上网真的很难。

然而我只是想上google看看技术文档,你狗日的死也不让我看。

我怎么办?

现成的链接,就是没办法看。

只好把这链接放到bing.com里搜一下,选cached,嗯,如愿以偿。

我就看个技术文档,我容易吗?