使用openssl生成私钥、公钥和证书

生成公钥、私钥和证书

Mac 内置了openssl可以直接在终端使用

在终端输入:(加粗部分为在终端输入的代码)

openssl

genrsa -out rsa_private_key.pem 1024

pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt

输入密码:***(最常用密码)

确认输入密码:***

rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

就生成成功了私钥和公钥

生成测试证书

req -new -x509 -key rsa_private_key.pem -out cacert.pem -days 1095

会出现一些选项,直接输入英文符号 “.”下一步即可

在系统用户下会出现这些文件

使用https

将刚才生成的文件放到项目pem文件夹下,
于pem文件夹同级目录下新建文件 https.js
const https = require('https');  
const fs = require('fs');  
  
const options = {  
  key: fs.readFileSync('pem/rsa_private_key.pem'),  
  cert: fs.readFileSync('pem/cacert.pem')  
};  
  
https.createServer(options, (req, res) => {  
  res.writeHead(200);  
  res.end('hello world\n');  
}).listen(8000);

在终端进入项目目录

node https.js  

在浏览器输入
https://127.0.0.1:8000/
选择继续访问即可

from: http://blog.csdn.net/nothing_is_imposible/article/details/52709740

NodeJs在监听端口时抛错Error: listen EACCES

events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:100
    at Object.exports._errnoException (util.js:1026:11)
    at exports._exceptionWithHostPort (util.js:1049:20)
    at Server._listen2 (net.js:1244:19)
    at listen (net.js:1293:10)
    at Server.listen (net.js:1389:5)
    at /Users/wenyejie/WebstormProjects/DEMO/node/01.js:24:8
    at Object. (/Users/wenyejie/WebstormProjects/DEMO/node/01.js:27:2)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
wenyejie:node wenyejie$ node 01.js
Service running at http://localhost:100/
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:100
    at Object.exports._errnoException (util.js:1026:11)
    at exports._exceptionWithHostPort (util.js:1049:20)
    at Server._listen2 (net.js:1244:19)
    at listen (net.js:1293:10)
    at Server.listen (net.js:1389:5)
    at /Users/wenyejie/WebstormProjects/DEMO/node/01.js:25:8
    at Object. (/Users/wenyejie/WebstormProjects/DEMO/node/01.js:28:2)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)

解决方案

1.

sudo node 01.js

2.
把端口号调整到网上调整如: 8080

AngularJs ngRepeat 中 track by的作用

来一个简单的ngPreat的例子

{{game}}

一般来说, 这种写法已经足够了

BUT……

如果我的数据是这样的呢!!!

var gameList = [1, 2, 2];

 

你在执行上面的ng-repeat就会报错!!
qq20161203-0

原因

angular需要一个唯一值可以与生成的dom绑定,以便追踪. 而对于数字对象而言, 它的ID就是它本身的值, 因此数组中不允许有两个相同的值.

track by

这个时候就突显出track by的作用了, 生成一个唯一key来识别对象

{{game}}

使用main元素进行布局遇到的各种奇葩BUG

BUG背景:

在我开发SDK1.0与公会管理平台是, 我在想, 都不用兼容IE8, 还不用HTML5的语义化布局,

显示我得B格, 秀秀我的专业水平.

自我陶醉一分, 哈哈.

头部用header元素了

尾部用footer元素了

主要内容用main元素了

……

完美, 布局成功, 成功的展现了我得水准与我的代码质量,

在chrome中浏览一下, perfect, 妥妥的

 

BUG场景:

咦! 我的滚动在4.3版本的三星手机下, 怎么失效了!

咦! 我得.main {padding-bottom: 20px;} 在IE11下怎么失效了!

雅蠛蝶, 各种BUG!!! 难过ing

 

调试过程:

为什么chrome, firefox, iphone, 甚至大多数android都没有问题

为什么滚动失效, 为什么padding-bottom失效?

他们都是main元素的属性, 那是不是跟main元素有关?

这个HTML5元素BUG是不是跟兼容性有关啊?

只有低端机, 低端版本的浏览器才有这个BUG?

…..

吓得赶紧去check一下main元素的兼容性

 

9eaa3529-df8b-4fdc-8801-e794c522efca

调试结果:

果然是main元素兼容性不够好导致的!