<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zmrdlb的专栏]]></title><description><![CDATA[一些随手笔记]]></description><link>https://blog.youkuaiyun.com/zmrdlb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zmrdlb]]></copyright><item><title><![CDATA[微信小程序 WeUI form 表单验证]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/100894501</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/100894501</guid><author>zmrdlb</author><pubDate>Tue, 17 Sep 2019 10:04:26 +0800</pubDate><description><![CDATA[背景
因为公司项目需要，最近在调研微信小程序。小程序不仅提供了丰富的组件帮程序员快速构建app，而且还提供了一套微信风格的UI组件库 WeUI。
Form 表单数据验证是常用的场景之一。现在小程序中实现 form 表单验证有以下两种途径：

WxValidate - 表单验证
WeUI form - 本身提供的表单验证

因本人想用 WeUI，所以尝试采用第2种方式。但发现使用过程中各种坑。
We...]]></description><category></category></item><item><title><![CDATA[PM2 - Documentation - (Install as .deb & Download as ZIP & Contributing - 贡献)]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/77067665</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/77067665</guid><author>zmrdlb</author><pubDate>Thu, 10 Aug 2017 17:51:31 +0800</pubDate><description><![CDATA[Install as .deb如果你想安装一个没有设置node的pm2，pm2可作为.deb包来使用。它是为Ubuntu最新的长期支持发布而开发的。
安装
# 1. Add the PM2 repository signing key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv D1EA2D4C# 2. Add the PM2 r]]></description><category></category></item><item><title><![CDATA[PM2 - Documentation - (PM2 API & Using PM2 in Cloud Providers & Expose static files)]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/77062898</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/77062898</guid><author>zmrdlb</author><pubDate>Thu, 10 Aug 2017 17:40:30 +0800</pubDate><description><![CDATA[PM2-API暂时用不着，先不翻译Using PM2 in Cloud Providers - 云服务商使用pm2你可以会遇到自己没有权限去访问CLI启动你的node app。你有2个方法规避：
使用preinstall指令将pm2安装到全局，并且在start script中启动app；
将pm2作为依赖引用，并且在start script中调用模块；
方法1：preinstall将pm2到全局in]]></description><category></category></item><item><title><![CDATA[PM2 - Documentation - (Specifics,ES6/AuthBind...)]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/77054265</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/77054265</guid><author>zmrdlb</author><pubDate>Thu, 10 Aug 2017 17:03:59 +0800</pubDate><description><![CDATA[Specifics,ES6/AuthBind…Listening on port 80 w/o root通常不将node作为root运行，然后只有root才可以绑定小于1024的端口。这是 authbind 所发挥作用的地方。Authbind允许非root用户绑定小于1024的端口。$ sudo apt-get install authbind
$ sudo touch /etc/authbind/]]></description><category></category></item><item><title><![CDATA[PM2 - Documentation - (Watch & Restart & Monitoring & Source map)]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/77009095</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/77009095</guid><author>zmrdlb</author><pubDate>Thu, 10 Aug 2017 15:50:07 +0800</pubDate><description><![CDATA[Watch & RestartAuto restart apps on file change当文件被修改时，pm2默认可以自动restart app$ pm2 start app.js --watch如果 –watch 启用了，那么stop将不会停止监听:
pm2 stop 0  不会停止监听
pm2 stop –watch 0 将停止监听  注意：watch将不会触发任何 graceful ac]]></description><category></category></item><item><title><![CDATA[PM2 - Documentation - (Startup Script & Docker Integration & Process Metrics & Process Actions)]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/76924185</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/76924185</guid><author>zmrdlb</author><pubDate>Wed, 09 Aug 2017 18:40:37 +0800</pubDate><description><![CDATA[Startup Script]]></description><category></category></item><item><title><![CDATA[PM2 - Documentation - (Update PM2 & Deployment)]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/76906519</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/76906519</guid><author>zmrdlb</author><pubDate>Tue, 08 Aug 2017 18:05:24 +0800</pubDate><description><![CDATA[Update PM2
首先保存所有进程
$ pm2 save
然后按照pm2的最新版
$ npm install pm2 -g
最后更新内存中的pm2
$ pm2 updateDeployment - 部署Getting startedpm2嵌入一个简单而强大的追踪部署系统。一步一步教程 
请阅读考虑使用pm2部署
1)  生成一个简单的ecosystem.json文件，列出进程和部署环境的配置。]]></description><category></category></item><item><title><![CDATA[PM2 - Documentation - (Graceful restart/reload & Environment management & Log Management)]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/76840906</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/76840906</guid><author>zmrdlb</author><pubDate>Tue, 08 Aug 2017 14:39:40 +0800</pubDate><description><![CDATA[Graceful restart/reloadGraceful Stop为了优雅的restart/reload/stop，在你的app退出之前，确保你可以收到SIGINT信号，并清除需要删除的数据（例如，数据库连接，进程事务…）process.on('SIGINT', function() {
   db.stop(function(err) {
     process.exit(err ? 1]]></description><category></category></item><item><title><![CDATA[pm2 - Documentation - (Cluster Mode&Process File)]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/76635056</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/76635056</guid><author>zmrdlb</author><pubDate>Mon, 07 Aug 2017 14:23:26 +0800</pubDate><description><![CDATA[Cluster Mode

集群模式。

集群模式允许网络化的node应用 (http(s)/tcp/udp server) 将可使用的CPU按比例分配，无需修改任何代码。这将极大地提高应用程序的性能和可靠性，这取决于可用CPU的数量。

Usage


启用集群模式，可以通过加-i配置项




$ pm2 start  app.js -i 0


或者一个 js/yaml/json 文件]]></description><category></category></item><item><title><![CDATA[PM2 - Quick Start]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/72831575</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/72831575</guid><author>zmrdlb</author><pubDate>Thu, 03 Aug 2017 16:20:19 +0800</pubDate><description><![CDATA[前言

PM2是一个针对node应用的进程管理器。保持应用永远处于活动状态，无停机重新加载，以及常见的系统管理任务。

github官方地址

支持系统：Linux, MacOSx, Windows



安装

npm install pm2 -g



启动应用程序

切换到应用程序的工程目录

pm2 start app.js





常用命令



# General
$ npm ins]]></description><category></category></item><item><title><![CDATA[http cookie]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/73484967</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/73484967</guid><author>zmrdlb</author><pubDate>Tue, 20 Jun 2017 11:34:21 +0800</pubDate><description><![CDATA[作为一个前端的程序员，操作cookie也仅仅是document.cookie。对于http cookie一般是server端接口来控制，通过Request Headers和Response Headers可以看到。平时也不胜关心。但是最近项目遇到一个问题，让我对http cookie的发送与设置进行了精分。http cookie跨域时到底发送哪个域的数据
  前提：页面的域名是：web.zmrdlb]]></description><category></category></item><item><title><![CDATA[Process managers for Express apps]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/65443816</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/65443816</guid><author>zmrdlb</author><pubDate>Thu, 01 Jun 2017 15:13:56 +0800</pubDate><description><![CDATA[官网地址：http://www.expressjs.com.cn/advanced/pm.html进程管理器process manager一、 当express应用运行在生产环境，那么我们会使用一个进程管理器：
如果app崩溃，自动重启
获取运行时性能和资源消耗
动态修改配置以提高性能
集中控制
二、进程管理器有点像一个服务应用程序：它是一个应用程序的“容器”，有利于部署，提供高可用性，并使您能够在]]></description><category></category></item><item><title><![CDATA[browserify cli 使用说明]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/60778337</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/60778337</guid><author>zmrdlb</author><pubDate>Thu, 23 Mar 2017 14:46:55 +0800</pubDate><description><![CDATA[本文仅仅是方便自己记忆来写的简单的说明，并不包括教程类的讲解。

并且着重将了下对于jquery外部引用的坑以及2种实现方式

browserify [entry file] –standalone [modulename] > [outfile]

将entry file编译成同时支持node, amd ,window.modulename环境的形式]]></description><category></category></item><item><title><![CDATA[npm cli commands - npm指令大全]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/53204116</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/53204116</guid><author>zmrdlb</author><pubDate>Fri, 18 Nov 2016 19:31:01 +0800</pubDate><description><![CDATA[npm access: 设置已发布的包的访问级别


  npm access public [] 
  npm access restricted [] 
  npm access grant   [] 
  npm access revoke  [] 
  npm access ls-packages [||] 
  npm access ls-collaborators [ []] 
  n]]></description><category></category></item><item><title><![CDATA[使用npm-开发者]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/53203191</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/53203191</guid><author>zmrdlb</author><pubDate>Thu, 17 Nov 2016 17:50:20 +0800</pubDate><description><![CDATA[前言如果我们想开发一个npm包，那么我们应该知道一些其他规范。本文就是介绍这类信息。查看npm文档npm help thing什么是一个包package
一个包含package.json（应用程序文件描述）的文件夹
可以gzip压缩
可以通过url访问(gzip压缩后)
<name>@<version>已在registry发布
<name>@<tag>映射
<name>已经有latest标记
拥有一]]></description><category></category></item><item><title><![CDATA[npm初识 Getting Started]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/53189251</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/53189251</guid><author>zmrdlb</author><pubDate>Thu, 17 Nov 2016 16:50:32 +0800</pubDate><description><![CDATA[npm官方文档


npm更新：npm install npm@latest -g
npm权限：当你要安装一个npm包到全局时，如果发现提示没有权限写入到指定路径，那么解决方法就是修改npm全局包安装目录即可：npm config set prefix ‘newpath’。具体请参见fixing-npm-permissions
安装npm包到本地: npm install package_name]]></description><category></category></item><item><title><![CDATA[package.json说明]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/53190696</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/53190696</guid><author>zmrdlb</author><pubDate>Wed, 16 Nov 2016 20:55:39 +0800</pubDate><description><![CDATA[package.json是什么？
  直接的说：就是管理你本地安装的npm包 
  一个package.json文件可以做如下事情：
  
  
    展示项目所依赖的npm包 
    允许你指定一个包的版本[范围] 
    让你建立起稳定，意味着你可以更好的与其他开发者共享
  
创建package.json在你要创建的目录下执行：npm init，系统会一一提示设置相关配置。提示设置的字段]]></description><category></category></item><item><title><![CDATA[npm config 说明]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/53187804</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/53187804</guid><author>zmrdlb</author><pubDate>Wed, 16 Nov 2016 16:20:02 +0800</pubDate><description><![CDATA[npm config官方文档 
- access: 当我们发布一个npm包时，访问级别设置 
- always-auth: 当访问此npm包时，是否进行身份验证（一般就是下载安装） 
- bin-links: 通知npm为此包创建symlinks  
- browser: 浏览npm docs的命令 
- ca: 证书 
- cafile: 包含ca证书的文件路径]]></description><category></category></item><item><title><![CDATA[react组件生命周期方法说明]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/52935093</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/52935093</guid><author>zmrdlb</author><pubDate>Wed, 26 Oct 2016 16:03:20 +0800</pubDate><description><![CDATA[简单的了解如何创建一个react组件，并且对于我们开发过程中，了解组件生命周期的方法是特别重要的。
1. js


/**
 * 关键词说明：
 *      初始化渲染：组件创建第一次调用render方法的时候
 * 
 * 声明周期方法执行顺序：
 *      初始化渲染：
 *          getInitialState
 *          componentWillMo]]></description><category></category></item><item><title><![CDATA[判断元素是否可以滚动scroll]]></title><link>https://blog.youkuaiyun.com/zmrdlb/article/details/52066684</link><guid>https://blog.youkuaiyun.com/zmrdlb/article/details/52066684</guid><author>zmrdlb</author><pubDate>Fri, 29 Jul 2016 18:08:00 +0800</pubDate><description><![CDATA[1. 前言
因为要做类似于微博的懒加载功能，所以要写一个懒加载组件lazyload.js。写的过程中，有一个很坑的问题：比如一般监听整个body页面的lazyload，则需要监听window.onscroll事件。如果每屏加载10条数据，但是电脑屏幕大了，10条数据也没有占满屏幕，此时就没法触发body的滚动，就没法加载后面的数据了。此时，我需要每次请求完数据后判断一下，要监听容器是否可以滚动，]]></description><category></category></item></channel></rss>