{"pageContext":{"index":57,"total":366,"name":"2020-06-07","items":[{"node":{"frontmatter":{"title":"Keyframes定格动画暂停新方法","publish":true,"cover":"","showCover":true,"date":"2020-06-07","category":"frontend","url":"https://css-tricks.com/a-new-way-to-delay-keyframes-animations/","author":"Eric Johnson","translator":"","tags":["animation"],"priority":1},"html":"<p>两个动画叠加，后一个专门用于停顿.</p>"}},{"node":{"frontmatter":{"title":"Mup(meteor up) 1.5 发布支持负载均衡","publish":true,"cover":"","showCover":true,"date":"2020-06-07","category":"nodejs","url":"https://zodern.bearblog.dev/meteor-up-1-5/","author":"zodern","translator":"","tags":["meteor"],"priority":1},"html":"<ul>\n<li>支持私有docker 镜像</li>\n<li>支持无downtime发布</li>\n</ul>"}},{"node":{"frontmatter":{"title":"Perspective - 基于Webassembly的大数据集实时分析可视化工具","publish":true,"cover":"https://camo.githubusercontent.com/f69d1132e2984e2a97209fc21520e9812c464873/68747470733a2f2f70657273706563746976652e66696e6f732e6f72672f696d672f64656d6f5f736d616c6c2e676966","showCover":true,"date":"2020-06-07","category":"frontend","url":"https://github.com/finos/perspective/","author":"The Fintech Open Source Foundation","translator":"","tags":["WASM"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"discord.js - discord接口封装","publish":true,"cover":"https://camo.githubusercontent.com/40129aa4640399b5e65cc3c101361a6a0b5d6467/68747470733a2f2f646973636f72642e6a732e6f72672f7374617469632f6c6f676f2e737667","showCover":true,"date":"2020-06-07","category":"nodejs","url":"https://github.com/discordjs/discord.js","author":"Amish Shah","translator":"","tags":["discord"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"jwt.io - auth0提供的在线编码解析jwt工具","publish":true,"cover":"https://jwt.io/img/pic_logo.svg","showCover":true,"date":"2020-06-07","category":"auth","url":"https://jwt.io/#debugger-io","author":"auth0","translator":"","tags":["jwt"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"nodejs 文件上传库比较选择","publish":true,"cover":"https://bytearcher.com/articles/formidable-vs-busboy-vs-multer-vs-multiparty/flowchart-nobg.png","showCover":true,"date":"2020-06-07","category":"nodejs","url":"https://bytearcher.com/articles/formidable-vs-busboy-vs-multer-vs-multiparty/","author":"Panu Pitkamaki","translator":"","tags":["upload"],"priority":1},"html":"<ul>\n<li>简单需求时使用 Formidable 或 Multer</li>\n<li>高性能时选择 Busboy(支持流处理且不需要中间文件系统)</li>\n</ul>"}},{"node":{"frontmatter":{"title":"omelette - 基于模板的命令行提示工具","publish":true,"cover":"https://camo.githubusercontent.com/c116f26bb8e82aedcabe782816db217cbc083192/68747470733a2f2f7261772e6769746875622e636f6d2f662f6f6d656c657474652f6d61737465722f7265736f75726365732f6f6d656c657474652d6e65772e6769663f7631","showCover":true,"date":"2020-06-07","category":"nodejs","url":"https://github.com/f/omelette","author":"Fatih Kadir Akın","translator":"","tags":["autocomplete"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"react-reparenting 保持状态修改节点父级","publish":true,"cover":"https://raw.githubusercontent.com/Paol-imi/react-reparenting/master/website/static/gifs/reparenting.gif","showCover":true,"date":"2020-06-07","category":"frontend","url":"https://github.com/paol-imi/react-reparenting","author":"Paolo Longo","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"redaxios - 封装fetch为axios接口","publish":true,"cover":"","showCover":true,"date":"2020-06-07","category":"javascript","url":"https://github.com/developit/redaxios","author":"Jason Miller","translator":"","tags":["axios"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"rejoiner gRpc转换为graphql","publish":true,"cover":"https://github.com/google/rejoiner/raw/master/website/static/rejoiner_overview.svg?sanitize=true","showCover":true,"date":"2020-06-07","category":"java","url":"https://github.com/google/rejoiner","author":"谷歌","translator":"","tags":["graphql"],"priority":1},"html":"<p><a href=\"https://audiomass.co/\">在线演示</a></p>"}},{"node":{"frontmatter":{"title":"tslog - 支持typescript良好格式化高性能日志","publish":true,"cover":"https://raw.githubusercontent.com/fullstack-build/tslog/master/docs/assets/tslog_pretty_output.png","showCover":true,"date":"2020-06-07","category":"javascript","url":"https://github.com/fullstack-build/tslog","author":"fullstack-build","translator":"","tags":["discord"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"分享 - 分析Notion（基于electron）的性能","publish":true,"cover":"https://d33wubrfki0l68.cloudfront.net/31a91c0f1a761caf78167fd9e1ce48707b4d033e/f0847/static/bc79d74265619bb0b304a49c252b52f7/28bdc/notion.png","showCover":true,"date":"2020-06-07","category":"frontend","url":"https://3perf.com/blog/notion/","author":"Ivan Akulov","translator":"","tags":["electron"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"windups 打字机特效","publish":true,"cover":"","showCover":true,"date":"2020-06-07","category":"frontend","url":"https://github.com/google/rejoiner","author":"Sam Gwilym","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"动画贝塞尔曲线参数在线调整工具","publish":true,"cover":"","showCover":true,"date":"2020-06-07","category":"frontend","url":"https://easings.co/","author":"Paul Macgregor","translator":"","tags":["css"],"priority":1},"html":"<p>另<a href=\"https://box-shadows.co/\">盒子阴影调整工具</a></p>"}},{"node":{"frontmatter":{"title":"应对疫情经济形式，开源批量发送冷邮件工具","publish":true,"cover":"https://camo.githubusercontent.com/7331f98389f969bb8e599be34b9bc701315c3d0e/687474703a2f2f6d6574656f72656d61696c732e636f6d2f696d6167652f636f7665722e6a7067","showCover":true,"date":"2020-06-07","category":"nodejs","url":"https://github.com/catin-black/meteor-emails/","author":"Adam","translator":"","tags":["meteor"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"微软开始通过 Windows Update 来更新 Chromium 版 Edge","publish":true,"cover":"https://o.aolcdn.com/images/dimse/5845cadfecd996e0372f/6b828763c48e04a96b194963ac37d3ac1b4a7a9b/dGh1bWJuYWlsPTY0MCUyQyZxdWFsaXR5PTk1JmltYWdlX3VyaT1odHRwcyUzQSUyRiUyRnMueWltZy5jb20lMkZvcyUyRmNyZWF0ci11cGxvYWRlZC1pbWFnZXMlMkYyMDIwLTA2JTJGMmFmYmE1NjAtYTViNS0xMWVhLWI3ZTktZGEzOWNmNWU2ZWRjJmNsaWVudD1hbXAtYmxvZ3NpZGUtdjImc2lnbmF0dXJlPThlNzhhODU2NGJmY2QxMTQ4NGVmYThiYzA2ZDg2Y2FkNWQzYWE3OGI=","showCover":true,"date":"2020-06-07","category":"web","url":"https://cn.engadget.com/cn-2020-06-04-microsoft-edge-windows-update.html?guccounter=1&guce_referrer=aHR0cHM6Ly93d3cuZG9nZWRvZ2UuY29tLw&guce_referrer_sig=AQAAANPoTDuLp_NOLsbQXYNT644ei5ulb20UrcjrGq_mkQtAD-n3Nv5J3t6TJ35mB-nhjEff9WcO_2r1HC5-qK1P7C80e4cAdOISULEAg2NA1CUNbA2MNJQjcXMbKamBHcw2c5wkP0mZOCamw5ujdnEbgXnwH8H87tJXeN6vXb9NDYta","author":"Eric Chan","translator":"","tags":["edge"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"微软罕见认错：当年对Linux和开源做错了","publish":true,"cover":"http://p4.itc.cn/images03/20200520/b859debc018e42a4a62a7d9e94c11823.jpeg","showCover":true,"date":"2020-06-07","category":"other","url":"https://www.sohu.com/a/396517837_100117963","author":"三言财经","translator":"","tags":["windows"],"priority":1},"html":"<p><a href=\"https://audiomass.co/\">在线演示</a></p>"}},{"node":{"frontmatter":{"title":"怪奇物语 - javascript版","publish":true,"cover":"https://livecodestream.dev/images/post/2020-06-03-Stranger-Things-JavaScript-Edition/Hero.jpg","showCover":true,"date":"2020-06-07","category":"javascript","url":"https://livecodestream.dev/post/2020-06-03-stranger-things-javascript-edition/","author":"Live Code Stream","translator":"","tags":["lol"],"priority":1},"html":"<ul>\n<li><code class=\"language-text\">[&#39;1&#39;, &#39;7&#39;, &#39;11&#39;].map(parseInt);</code> 输出<code class=\"language-text\">[1,NaN,3]</code></li>\n<li><code class=\"language-text\">(‘b&#39;+&#39;a&#39;+ + ‘a’ + ‘a’).toLowerCase() === ‘banana’</code>类似这样的</li>\n</ul>"}},{"node":{"frontmatter":{"title":"想让你的文章出现在这里？","publish":true,"cover":"","showCover":true,"date":"2020-06-07","category":"frontend","url":"mailto:editor@zhouexin.com?subject=投稿!","author":"投稿","translator":"","tags":["editor"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"教程 - 避免 CSRF（Cross-site request forgery 跨站请求欺骗）攻击","publish":true,"cover":"","showCover":true,"date":"2020-06-07","category":"nodejs","url":"https://jwt.io/#debugger-io","author":"Jason Walton","translator":"","tags":["CSRF"],"priority":1},"html":"<ul>\n<li>不要使用 GET 修改数据</li>\n<li>记住 CORS 只针对 script 请求（ajax），对 form 提交不起作用。</li>\n<li>CORS 即使是 ajax，仍然会提交，只是无法获得结果返回。</li>\n<li>使用双重 cookie 提交验证</li>\n<li>使用 CSRF token，推荐<a href=\"https://github.com/expressjs/csurf\">csurf</a></li>\n<li>使用 SameSite cookie</li>\n<li>检查 form（“application/x-www-form-urlencoded”, “multipart/form-data”） 提交的 api</li>\n</ul>\n<blockquote>\n<p>参见 <a href=\"https://juejin.im/post/5bc009996fb9a05d0a055192\">前端安全系列之二：如何防止 CSRF 攻击</a></p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"火狐开发者网络(MDN)文档支持React,vue,embers","publish":true,"cover":"","showCover":true,"date":"2020-06-07","category":"frontend","url":"https://developer.mozilla.org/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks","author":"MDN","translator":"","tags":["mdn"],"priority":1},"html":"<p><a href=\"https://developer.mozilla.org/zh-CN/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks\">https://developer.mozilla.org/zh-CN/docs/Learn/Tools<em>and</em>testing/Client-side<em>JavaScript</em>frameworks</a></p>"}}]}}