nodejs web应用代码热更新

在用nodejs开发web程序过程中, 每次修改都需要重新启动一下服务, 虽然有pm2,forever等解决方案。
在fex上看见一个比较另类的解决方案——Node.js Web应用代码热更新的另类思路

在这里简单实现一下来解决开发过程中热启动的问题。

首先需要重新包装一下nodejs提供的require方法。在require自己写的代码时,同时需要监听文件变化,当文件发生变化时,重新加载模块。

阅读更多

event那些事

遇到一个问题:

A标签跳转前需要做一下登录判断,如果未登录则不让跳转,使用preventDefault发现阻止不了A标签的跳转。

解决方法:

加上stopImmediatePropagation才行。当然也可以把A标签的href属性设置为空,通过js来控制跳转,但改动略大些,忽视。

于是正好借此机会整理和收集一下JavaScript中的event事件。

阅读更多

React-Todo示例

近两天事情较少,准备做一个书单列表,初始阶段和之前看过的Todo基本相似。正好很久没看React,感觉好生疏,准备结合ES6重新写一个React的Todo示例。参考的源码和样式来源于todomvc

阅读更多

图片加载

随着网页内容越来越丰富,页面的图片也越来越多,导致页面加载越来越慢。针对页面的优化,图片加载是一个重点。常见的优化方案有图片预加载,图片惰性加载。或者针对图片格式做一些优化,例如使用webp之类的。这里主要关注图片的加载方式。

阅读更多

Meta 整理

基本属性值

meta的意义取决其属性:

  1. name: 文档级别的元数据,作用于整个页面。
  2. http-equiv: 程序指令,一般用于告诉服务器页面的一些特殊要求。
  3. charset: 设置页面的字符
  4. itemprop: 自定义的元数据

如果设置了 name 或者 http-equiv,可以用content指定相关的内容

阅读更多

一键收藏网址至Github

在网上看见一个用Ruby On Rail写了一个一键收藏网页文章至github上的文章(点我查看),觉得很想法,于是乎,我也想用nodejs写一个。

功能描述

  1. chrome扩展,发送当前标签页的标题和网址
  2. nodejs后端服务器,获取chrome发送的数据,保存至markdown文件中
  3. 定时提交数据至github上

阅读更多

hexo上传源文件

一、背景

之前用hexo和github搭建了一个免费博客。但本地的目录结构有些乱,想调整一下,趁此机会把hexo的源文件和所使用的主题上传到github上,以防需要换电脑时,原始数据丢失。

二、实现

上传hexo源文件同时也不和hexo编译后的文件冲突,可以使用一个仓库多个分支的思路。为我们的代码仓库创建两个分支,一个是 master, 一个hexo。master分支用来管理hexo编译之后的静态资源,而hexo分支用来管理hexo的源码,即一些markdown文件和主题等,需要设置这个分支为默认分支,以便拷贝仓库代码到本地时更方便。

阅读更多

代码片段(JS)

#获取随机字符
###获取26个字母与10个数字之间的随机字符方法

1
2
3
var randstr = Math.random().toString(36).slice(2);
var len = randstr.length;
var r = randstr.charAt(~~(len*Math.random()))

###获取某一个区间中的随机字符,利用unicode实现

1
String.fromCharCode(0x2200 + (0x220f - 0x2200 + 1) * Math.random());

PS: 数字的unicode范围为 0030–0039;英文小写字母的范围为,0061–007a

Terminal 路径显示

查看提示符显示方式:

echo $PS1

修改$PS1,打开文件 ~/.bash_profile,增加一条规则,如果有则编辑即可:

export PS1=”\u \w$”

如果需要设置路径颜色,可以修改为:

export PS1=”[\e[33;1m\u@\h: \e[31m\W\e[0m]$“

保存修改并退出,应用更新:

source ~/.bash_profile

阅读更多