api设计原则

2021-07-29
阅读 1 分钟
1.4k
不以用户为中心开发api。用户能使用的api都是作者已开发的api。作者决定开发哪些api。用户决定使用哪些api。用户有使用权。用户可以选择使用或不使用。可以提建议。不可决定api。此原则是“作者优先原则”的另一种表达。

esm的最简单理解

2021-05-27
阅读 1 分钟
2.9k
讲解esm的运行逻辑。esm是一种模块化解决方案。其他方案还有:commonjs(本文简写为cjs)/amd/umd。模块化是工程化的组成部分。后端早就把工程化做的很好了。前端的代码还是一地鸡毛。使用拙劣的<script>。es6为前端带来了模块化。

入门rollup

2021-05-14
阅读 2 分钟
1.4k
overview以一个最基本的demo展示rollup的功能/用法。init project {代码...} 编辑package.json {代码...} 编辑配置文件本示例中有4个配置文件。分别用于生成commonjs规范代码/esm规范代码/立即执行代码/umd规范代码。 {代码...} {代码...} {代码...} {代码...} {代码...} 编辑代码 {代码...} {代码...} 执行打包 {代码...}

最基本的ts项目

2021-05-13
阅读 1 分钟
1.4k
使用 ts 开发一个项目。overview展示如何使用ts写项目。init {代码...} 创建配置文件tsc命令编译项目时需要按照配置文件去编译。tsconfig.json {代码...} 编写项目创建first.ts {代码...} 创建second.ts {代码...} 编译 {代码...} 编译结果 {代码...}

入门cli

2021-05-11
阅读 2 分钟
1.2k
在./projectCommand/packages/testCommand下执行npm link再执行initProject create li -f main.js -m,则输出:

入门commander

2021-05-10
阅读 2 分钟
1.7k
官网写的readme太差了,连一个像样的demo都没有。我看了几天readme也没学会。后来还是去看源码自己揣摸出来的。是tj太nb了,让我这个小白的看不懂他的的文章,还是写不清楚自己的库能干什么、怎么干。下面是我写的demo。方便像我这样的小白入门。若你能看懂tj写的readme。关了这个页面吧。

入门lerna

2021-05-08
阅读 2 分钟
2.1k
overviewlerna是一个“一库多包”的管理工具。一库多包:在一个仓库中包括了多个代码包。这样做可以解决若干相关包的关联/共享功能。还可以跟踪版本。demooverview创建一个可以输出文本的包。init {代码...} 运行结果如图create添加一个lerna管理的包(calc)。 {代码...} edit编辑calc/lib/calc.js为如下代码: {代码...} ...

前端工程化的实践过程

2021-05-01
阅读 1 分钟
964
前端近来的有好多发现方向。如:微服务/工程化/自动化。我计划记录一下我在工程化方向做的探索。分为“工程化各组成部分”/“实现过程”/“对未来的影响”。这篇文章只是一个开头,后续还有好多内容。一时半会儿也写不完。今天先做了一个vue-cli的插件。

我和注意力不集中症

2021-02-04
阅读 2 分钟
1.2k
我最近听说我可能有“注意力不集中症”,再加一点“强迫症”,可能还有轻度“诵读困难症”。(我没有经过专家确诊,但是我的朋友是专家。他是提供了一些症状,然后我相信我有这个疾病。)

hash表

2020-08-29
阅读 1 分钟
1k

记录在阿里上开服务的过程

2020-06-23
阅读 1 分钟
1.3k
从5、6年前就开始想办法做一个个人网站。直到今天才有了一点样子。自己是从一个前端走来的。前端对于一个网站中的占比太小了。要做好网站,有太多非前端的事儿要做。下面记录一次在阿里云上部署node服务的过程。

跨域请求中的withCredentials、Access-Control-Allow-Origin

2020-05-16
阅读 1 分钟
9.1k
Access to XMLHttpRequest at 'https://34cd046f.ngrok.io/node/vcode/123456543' from origin 'null' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mod...

使本地服务可以从外网访问

2020-05-11
阅读 1 分钟
1.7k
1.在本地做一个服务。我使用node+express做的。2.在ngrok网站做下载ngrok、并安装。2.1下载2.2unzip /path/to/ngrok.zip // 解压后就是可执行文件3.进入解压后的目录后执行./ngrok authtoken 1bi5yKMRgrJK9pzzjA3mQxfcmVG_2WMLjhduc9gMXeVMZz9C6会生成一个配置文件ngrok.yml。它可帮助你获得更多长时间session。可以在状...

get/post/put/delete的区别

2019-09-27
阅读 1 分钟
8.6k
get/delete分别是得到数据和删除数据。请求数据一般使用get.若请求的数据不是敏感数据,后端就直接给前端了。若是敏感数据,后端做一个请求者是否有权限的验证,再分别处理是否给前端数据。删除数据的操作比较危险。都需要验证是否有权限删除该数据,再执行删除操作。即使开始执行删除操作也是使用软删除,一段时间后再...

generator 的笔记

2019-09-04
阅读 1 分钟
1.2k
有特定的书写格式。 返回Iterator接口。 分段执行函数体。 结合异步方法使用。 特定的书写格式 {代码...} 返回Iterator接口 generator方法返回的是Iterator接口。 {代码...} 分段执行函数体 generator函数的实例只有执行next()方法才执行下一段。否则就不执行。正因其有此特性,才可以执行一段后执行其它代码然后再执行...

mongodb / morgan 保存日志

2019-08-30
阅读 2 分钟
1.8k
把日志写入mongodb时报如下错误:'E11000 duplicate key error collection: confusion.logs index: userAgent_1 dup key: { : null }'我在网上找的解决方法是db.addresses.createIndex( { "xmpp_id": 1 }, { sparse: true } )当时看不懂。用了一个很暴力的方法解决的这个问题。方法如下:

express中使用morgan

2019-08-28
阅读 3 分钟
5.9k
morgan('tiny') // 使用内置format的名称morgan(':method :url') // 使用自定义的formatStringmorgan((tokens, req, res) => {...}) // 使用返回formatString的方法。tokens是包含所以已定义的全部token的对象。我通过log得到token就是morgan的实例。morgan(morgan.compile(formatString)) // 使用预编译后的formatFu...

在express框架下使用jwt实现验证。

2019-08-24
阅读 5 分钟
6k
接着上遍文章(使用session保存用户数据)来让使用jwt保存用户数据。这里会用到passport-jwt/jsonwebtoken。passport-jwt是passport的一个验证策略。它使用jwt(json web token)验证。jsonwebtoken是一个编码、解码、验证jwt的模块。

for...of for...in 的区别

2019-08-17
阅读 1 分钟
1.3k
简单的区别是:for...of得到是value, for...in得到的是key.下面详细说区别。for...of是在es6时出现的。与其对应的是Iterator接口。Iterator接口对应的是可以返回遍历器对象的方法。这个方法使用[Symbol.iterator]标记。因为遍历器对象返回的是当前值。所以for...of得到的value.for...in是在当前对象的除Symbol属性以外的...

在express框架下使用passport实现验证(0)。

2019-08-13
阅读 4 分钟
3.2k
前面2个文章说明了cookie/session保存、验证用户的方法都有各自的缺点。现在推荐一个使用passport的方法验证用户。 这里的代码是基于上一遍文章(express框架下使用session)的代码。关于passport的学习差不多一个月了,还是有搞不清的地方,不过可以正常简单使用完成登录、验证、登出功能。passport的笔记分为2部分。基...

express框架下使用session

2019-07-30
阅读 5 分钟
3.4k
上一遍文章说了cookie的不足,提到使用session是解决缺点的一个方法。这遍文章说说怎么使用session.作者使用了文件保存session的方法。若用别保存方式(内存、数据库)也行,记得使用相应的模块。 下面从使用内存存储和文件存储的2个方法分别说明。

在express项目中设置、得到cookie。

2019-07-28
阅读 2 分钟
5.4k
在./routes/users.js文件里新建一个路由/setcookie,并在该路由内设置路由。也可以设置多个cookie,得到cookie时也就是多个。

在mockjs官网上没学到的

2019-07-15
阅读 3 分钟
3.5k
mock会拦截下指定的请求,并返回由mock计算出的数据。 mock拦截下的请求不会在network里出现。 mock方便前端脱离后端进行开发。 先来一个dome说明怎么使用。mock怎么与项目结合使用。

当使用npm publish报-4048时的解决文案。

2019-06-26
阅读 2 分钟
6.1k
前段时间开发过一个npm包,发布在npm上。过了一段时间后修改了部分内容,需要再次发布。在执行npm publish时报错了。大概如下: {代码...} 报错内容说不允许操作,查了查发现原因是没有登录。那就登录呗。 使用npm login登录时,输入Username/Password/Email后,又提示错误了: {代码...} 去网上搜了一下,原因是使用淘...

计算机的编码方式

2018-12-12
阅读 1 分钟
1.4k
在计算机中以二进制的形式保存的数就是机器数。在机器数中首位是表示正负号的。0:正数,1:负数。 机器数表示的真正数就是真值。如:00000001=+1,10000001=-1

vconsole

2018-12-10
阅读 4 分钟
5.6k
vconsole 为移动端开发的前端开发工具。 function 查看console日志。 查看network请求。 查看文档元素。 查看cookie/localstorage. 执行手写的js命令。 自定义插件。 install {代码...} usage {代码...} 实例化后才能使用。 直接使用。与console.log无区别。 console.log('system', value) // 会把value输出支system. ap...

npm上创建发布package

2018-11-06
阅读 4 分钟
8.2k
在npm维护package可以方便版本更新、使用、复用。 这篇文章里会聊从零开始在npm上创建发布package. 简单来说就是: 在本地初始化包。(npm init) 创建内容。(最后规范) 在[链接]。 在本地用这个账号登录。(npm login, 再输name,password,email) 发布(npm publish) 以下是详细步骤。 1. install 初装必要环境。 no...

搞清animation/transtion/transform/translate

2018-10-12
阅读 3 分钟
2.7k
css3动画 animation 使用css3动画需要2步 为指定元素添加animation属性及属性值。各浏览器私有属性在前,通用属性在最后。 使用@keyframes定义动画过程名称。各浏览器私有属性在前,通用属性在最后。 animation定义动画的属性值。 @keyframes规则内指定一个CSS样式和动画将逐步从目前的样式更改为新的样式。 {代码...} ...

vue-infinite-loading简要教程

2018-10-10
阅读 2 分钟
8.8k
import InfiniteLoading from 'vue-infinite-loading' 或 const InfiniteLoading require('vue-infinite-loading')

配置多个git

2018-09-18
阅读 2 分钟
1.5k
生成一个ssh ssh-keygen -t rsa -C eamil@qq.com 第一次生成时默认名称为 id_rsa 你愿意改就改。 再生成一个ssh 进入到 .ssh 目录下。若不做步需要在第二步时添加路径名。 第二次生成时的指纹文件名不能和已有的重名。这次必须改。比如改为 id_rsa_ + companyname 在远程添加ssh文件 把前2步生成的ssh文件分别添加到相应...