Good Practices to Structure an Express App
Having heavily used the Express framework for 3 years, I’ve discovered a few patterns and conventions to structure an Express app. These patterns make my cod...
Having heavily used the Express framework for 3 years, I’ve discovered a few patterns and conventions to structure an Express app. These patterns make my cod...
模块(Module)的内部成员是指没有通过 module.exports 导出的变量或函数。如下面的示例模块:
作为 Node 社区最受欢迎的框架,Express 在沿用 Connect 的 middleware 机制的同时,还提供了在定义路由时使用的 route-specific middleware(下面称“路由中间件”)。路由中间件与 Connect 的 middleware 十分相似,可以用来执行预载入资源或校验请...
在使用 Express 框架开发网站或 API 时,经常会因为 Node.js 的异步流程造成逻辑代码中嵌套回调函数过多的问题。这时可以考虑使用 Promise 来简化这个流程。关于 Promise 可以参考以下资料:
不少互联网项目都需要对项目的数据,如用户数量的增长趋势、最近注册的用户列表和当前在线用户数量等进行统计,而我最近在做的项目需要将这些统计数据以图表的形式展现出来。为此我开发了统计框架Ranaly,以使开发者只需要简单地配置就能生成一个强大的统计数据可视化后台。
如果你是一个 Web 开发者,想必你一定听过 Node.js。这篇文章会告诉你如何开始学习 Node.js。
前些日子,一个悠闲又不悠闲的下午,我还在用 Node.js 写着某个移动互联网应用的 API 服务端。那时还是用 MySQL 作为数据库,一切都很好,所有功能正常运行。可是有很多问题让人不安:
Readability是从一个开源项目发展而来的产品,该项目托管在Google Code上,不过现在已经不再维护。由于其最初设计在浏览器上运行,在node.js中难以使用,而且转换效果和Readability现在的服务也相差较大。所以这几天我重写了这个项目,具体更新内容附后。
Node.js 通过实现 CommonJS 的 Modules/1.0 标准引入了模块(Module)概念,一个模块可以通过 module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过 require() 函数引入并使用。
五年前,我在 GitHub 开源了一个 macOS 上的 Redis 管理工具,取名 Medis,同时把它放到了 App Store 以 30 元一个的价格出售。换句话说,你既可以直接免费下载使用,也可以花 30 元购买,两者功能一样,全凭自愿。
在使用 Express 框架开发网站或 API 时,经常会因为 Node.js 的异步流程造成逻辑代码中嵌套回调函数过多的问题。这时可以考虑使用 Promise 来简化这个流程。关于 Promise 可以参考以下资料:
不少互联网项目都需要对项目的数据,如用户数量的增长趋势、最近注册的用户列表和当前在线用户数量等进行统计,而我最近在做的项目需要将这些统计数据以图表的形式展现出来。为此我开发了统计框架Ranaly,以使开发者只需要简单地配置就能生成一个强大的统计数据可视化后台。
Readability是从一个开源项目发展而来的产品,该项目托管在Google Code上,不过现在已经不再维护。由于其最初设计在浏览器上运行,在node.js中难以使用,而且转换效果和Readability现在的服务也相差较大。所以这几天我重写了这个项目,具体更新内容附后。
这篇日志将以偏技术的角度介绍我最近在做的业余项目 Code Game,其中我会解释 Code Game 对某些技术是如何进行取舍的,包括为什么不使用 CoffeeScript 以及选择 Myth 代替 Less/Sass 的原因。
Node.js 通过实现 CommonJS 的 Modules/1.0 标准引入了模块(Module)概念,一个模块可以通过 module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过 require() 函数引入并使用。
一个简单的例子:
博客很久没有更新了,最近计划出版一本Redis的入门书籍,所以时间都放到写书上了。其实写书倒也不算是件能让人忙起来的事情,但它却能轻易地占据人的生活。记得高一下学期刚开学的时候学生会开始招新,我需要准备一篇千字左右的讲稿,结果在演讲的前一周我就把讲稿写完了。然而在接下来的7天里我却满脑子都是讲稿的事:虽然我已经完...
产品运行过程中及时记录收集并分析统计数据对产品的持续改进有重要的指导作用。其中有两个很常见的统计模式:每小时新增的用户数量和一周内活跃的用户(对于一个漂流瓶应用,可能是每天都扔瓶子或捞瓶子的用户)数量。在实际开发中我使用 Redis 来实现这两个模式。
前些日子,一个悠闲又不悠闲的下午,我还在用 Node.js 写着某个移动互联网应用的 API 服务端。那时还是用 MySQL 作为数据库,一切都很好,所有功能正常运行。可是有很多问题让人不安:
前些日子同学找我来说我帮他做的网站的注册功能失效了。我看了一下发现是由于301跳转失败导致的。 查看日志错误内容为:
目前的一个项目有几个模块需要实现单例模式,于是想实现一个 Singleton 基类来使这些模块通过继承该基类实现 Singleton。
写给那些从来不使用别人的 Vim 的人
一个简单的例子:
最近买了Reeder的iOS版,感觉甚爽,尤其是和Read it later配合使用,给大家推荐一下。顺便列举一些我常用的Mac和iPhone软件。
最近入手了部iPhone 4 8GB,买时联通营业厅已经不提供给老用户的iPhone合约机套餐了,想要套餐就得用新号。
Readability是从一个开源项目发展而来的产品,该项目托管在Google Code上,不过现在已经不再维护。由于其最初设计在浏览器上运行,在node.js中难以使用,而且转换效果和Readability现在的服务也相差较大。所以这几天我重写了这个项目,具体更新内容附后。
Node.js 通过实现 CommonJS 的 Modules/1.0 标准引入了模块(Module)概念,一个模块可以通过 module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过 require() 函数引入并使用。
Readability是从一个开源项目发展而来的产品,该项目托管在Google Code上,不过现在已经不再维护。由于其最初设计在浏览器上运行,在node.js中难以使用,而且转换效果和Readability现在的服务也相差较大。所以这几天我重写了这个项目,具体更新内容附后。
Node.js 通过实现 CommonJS 的 Modules/1.0 标准引入了模块(Module)概念,一个模块可以通过 module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过 require() 函数引入并使用。
作为 Node 社区最受欢迎的框架,Express 在沿用 Connect 的 middleware 机制的同时,还提供了在定义路由时使用的 route-specific middleware(下面称“路由中间件”)。路由中间件与 Connect 的 middleware 十分相似,可以用来执行预载入资源或校验请...
在使用 Express 框架开发网站或 API 时,经常会因为 Node.js 的异步流程造成逻辑代码中嵌套回调函数过多的问题。这时可以考虑使用 Promise 来简化这个流程。关于 Promise 可以参考以下资料:
作为 Node 社区最受欢迎的框架,Express 在沿用 Connect 的 middleware 机制的同时,还提供了在定义路由时使用的 route-specific middleware(下面称“路由中间件”)。路由中间件与 Connect 的 middleware 十分相似,可以用来执行预载入资源或校验请...
在使用 Express 框架开发网站或 API 时,经常会因为 Node.js 的异步流程造成逻辑代码中嵌套回调函数过多的问题。这时可以考虑使用 Promise 来简化这个流程。关于 Promise 可以参考以下资料:
只借助 CSS 而不使用 JavaScript 来实现一个网页游戏并不需要什么新潮的技术,简单的几个选择器组合就能创造出意想不到的效果,再配合上 CSS3 的“绘图”能力,甚至可以做出不逊于 JavaScript 实现的网页游戏。 为了参加公司内的 CSS3 比赛,我连夜做了一个 CSS3 打地鼠游戏(其实准备时...
这篇日志将以偏技术的角度介绍我最近在做的业余项目 Code Game,其中我会解释 Code Game 对某些技术是如何进行取舍的,包括为什么不使用 CoffeeScript 以及选择 Myth 代替 Less/Sass 的原因。
目前的一个项目有几个模块需要实现单例模式,于是想实现一个 Singleton 基类来使这些模块通过继承该基类实现 Singleton。
目前的一个项目有几个模块需要实现单例模式,于是想实现一个 Singleton 基类来使这些模块通过继承该基类实现 Singleton。
一个简单的例子:
一个简单的例子:
最近入手了部iPhone 4 8GB,买时联通营业厅已经不提供给老用户的iPhone合约机套餐了,想要套餐就得用新号。
前些日子同学找我来说我帮他做的网站的注册功能失效了。我看了一下发现是由于301跳转失败导致的。 查看日志错误内容为:
现在几乎每个Web2.0网站都有会员管理模块,那怎样设计用户验证系统才能保证用户的账户安全呢?
现在几乎每个Web2.0网站都有会员管理模块,那怎样设计用户验证系统才能保证用户的账户安全呢?
有这样一个无线路由器:它支持 OpenWrt,支持 USB,支持 3G 拨号,能通过电脑 USB 接口充电,也可以反过来给手机充电,只有信用卡的一半大小。而且,只要 99 块钱。
有这样一个无线路由器:它支持 OpenWrt,支持 USB,支持 3G 拨号,能通过电脑 USB 接口充电,也可以反过来给手机充电,只有信用卡的一半大小。而且,只要 99 块钱。
有这样一个无线路由器:它支持 OpenWrt,支持 USB,支持 3G 拨号,能通过电脑 USB 接口充电,也可以反过来给手机充电,只有信用卡的一半大小。而且,只要 99 块钱。
Node.js 通过实现 CommonJS 的 Modules/1.0 标准引入了模块(Module)概念,一个模块可以通过 module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过 require() 函数引入并使用。
Readability是从一个开源项目发展而来的产品,该项目托管在Google Code上,不过现在已经不再维护。由于其最初设计在浏览器上运行,在node.js中难以使用,而且转换效果和Readability现在的服务也相差较大。所以这几天我重写了这个项目,具体更新内容附后。
Readability是从一个开源项目发展而来的产品,该项目托管在Google Code上,不过现在已经不再维护。由于其最初设计在浏览器上运行,在node.js中难以使用,而且转换效果和Readability现在的服务也相差较大。所以这几天我重写了这个项目,具体更新内容附后。
最近买了Reeder的iOS版,感觉甚爽,尤其是和Read it later配合使用,给大家推荐一下。顺便列举一些我常用的Mac和iPhone软件。
最近买了Reeder的iOS版,感觉甚爽,尤其是和Read it later配合使用,给大家推荐一下。顺便列举一些我常用的Mac和iPhone软件。
最近买了Reeder的iOS版,感觉甚爽,尤其是和Read it later配合使用,给大家推荐一下。顺便列举一些我常用的Mac和iPhone软件。
今天中午叫了外卖,掏钱结账时送餐的小伙拿着我给的 50 元钱看了半天跟我说是假币,我半信半疑地拿过来仔细看了看,发现确实是假的,纸张的质感差距很大。再对着阳光看看水印,可把我笑喷了:
今天中午叫了外卖,掏钱结账时送餐的小伙拿着我给的 50 元钱看了半天跟我说是假币,我半信半疑地拿过来仔细看了看,发现确实是假的,纸张的质感差距很大。再对着阳光看看水印,可把我笑喷了:
前些日子,一个悠闲又不悠闲的下午,我还在用 Node.js 写着某个移动互联网应用的 API 服务端。那时还是用 MySQL 作为数据库,一切都很好,所有功能正常运行。可是有很多问题让人不安:
前些日子,一个悠闲又不悠闲的下午,我还在用 Node.js 写着某个移动互联网应用的 API 服务端。那时还是用 MySQL 作为数据库,一切都很好,所有功能正常运行。可是有很多问题让人不安:
前些日子,一个悠闲又不悠闲的下午,我还在用 Node.js 写着某个移动互联网应用的 API 服务端。那时还是用 MySQL 作为数据库,一切都很好,所有功能正常运行。可是有很多问题让人不安:
前些日子,一个悠闲又不悠闲的下午,我还在用 Node.js 写着某个移动互联网应用的 API 服务端。那时还是用 MySQL 作为数据库,一切都很好,所有功能正常运行。可是有很多问题让人不安:
从Facebook到人人网,从Quora到知乎,再从Path到朋友圈,中国互联网一直很善于模仿国外优秀的产品并御其于国门之外。而WWDC 2012更是让独自享受着“单机版互联网”的中国用户心花怒放:iOS 6在中国终于放弃了摆在桌面上永远打不开的Youtube和Twitter转而内置优酷视频和新浪微博。
从Facebook到人人网,从Quora到知乎,再从Path到朋友圈,中国互联网一直很善于模仿国外优秀的产品并御其于国门之外。而WWDC 2012更是让独自享受着“单机版互联网”的中国用户心花怒放:iOS 6在中国终于放弃了摆在桌面上永远打不开的Youtube和Twitter转而内置优酷视频和新浪微博。
从Facebook到人人网,从Quora到知乎,再从Path到朋友圈,中国互联网一直很善于模仿国外优秀的产品并御其于国门之外。而WWDC 2012更是让独自享受着“单机版互联网”的中国用户心花怒放:iOS 6在中国终于放弃了摆在桌面上永远打不开的Youtube和Twitter转而内置优酷视频和新浪微博。
从Facebook到人人网,从Quora到知乎,再从Path到朋友圈,中国互联网一直很善于模仿国外优秀的产品并御其于国门之外。而WWDC 2012更是让独自享受着“单机版互联网”的中国用户心花怒放:iOS 6在中国终于放弃了摆在桌面上永远打不开的Youtube和Twitter转而内置优酷视频和新浪微博。
从Facebook到人人网,从Quora到知乎,再从Path到朋友圈,中国互联网一直很善于模仿国外优秀的产品并御其于国门之外。而WWDC 2012更是让独自享受着“单机版互联网”的中国用户心花怒放:iOS 6在中国终于放弃了摆在桌面上永远打不开的Youtube和Twitter转而内置优酷视频和新浪微博。
从Facebook到人人网,从Quora到知乎,再从Path到朋友圈,中国互联网一直很善于模仿国外优秀的产品并御其于国门之外。而WWDC 2012更是让独自享受着“单机版互联网”的中国用户心花怒放:iOS 6在中国终于放弃了摆在桌面上永远打不开的Youtube和Twitter转而内置优酷视频和新浪微博。
今天获得了傲游浏览器 Mac 版的内测资格,下载体验过后,决定吐槽一下。 其实这篇文章用一句话总结就很切题了:“尼玛啊这不就是 Chrome 吗!”
今天获得了傲游浏览器 Mac 版的内测资格,下载体验过后,决定吐槽一下。 其实这篇文章用一句话总结就很切题了:“尼玛啊这不就是 Chrome 吗!”
产品运行过程中及时记录收集并分析统计数据对产品的持续改进有重要的指导作用。其中有两个很常见的统计模式:每小时新增的用户数量和一周内活跃的用户(对于一个漂流瓶应用,可能是每天都扔瓶子或捞瓶子的用户)数量。在实际开发中我使用 Redis 来实现这两个模式。
产品运行过程中及时记录收集并分析统计数据对产品的持续改进有重要的指导作用。其中有两个很常见的统计模式:每小时新增的用户数量和一周内活跃的用户(对于一个漂流瓶应用,可能是每天都扔瓶子或捞瓶子的用户)数量。在实际开发中我使用 Redis 来实现这两个模式。
前天和昨天参加了豌豆荚的 Hack Day,这次 Hack Day 的主题是“Hi Web, High Web! ”,要求是使用豌豆荚百宝袋创建一个 Web 应用。
前天和昨天参加了豌豆荚的 Hack Day,这次 Hack Day 的主题是“Hi Web, High Web! ”,要求是使用豌豆荚百宝袋创建一个 Web 应用。
如果你是一个 Web 开发者,想必你一定听过 Node.js。这篇文章会告诉你如何开始学习 Node.js。
这篇文章写给使用全拼的人(怎么知道我用的是不是全拼?答:如果你不知道你在用什么输入法,那你很可能在用全拼)。
这篇文章写给使用全拼的人(怎么知道我用的是不是全拼?答:如果你不知道你在用什么输入法,那你很可能在用全拼)。
这篇文章写给使用全拼的人(怎么知道我用的是不是全拼?答:如果你不知道你在用什么输入法,那你很可能在用全拼)。
这篇文章写给使用全拼的人(怎么知道我用的是不是全拼?答:如果你不知道你在用什么输入法,那你很可能在用全拼)。
博客很久没有更新了,最近计划出版一本Redis的入门书籍,所以时间都放到写书上了。其实写书倒也不算是件能让人忙起来的事情,但它却能轻易地占据人的生活。记得高一下学期刚开学的时候学生会开始招新,我需要准备一篇千字左右的讲稿,结果在演讲的前一周我就把讲稿写完了。然而在接下来的7天里我却满脑子都是讲稿的事:虽然我已经完...
博客很久没有更新了,最近计划出版一本Redis的入门书籍,所以时间都放到写书上了。其实写书倒也不算是件能让人忙起来的事情,但它却能轻易地占据人的生活。记得高一下学期刚开学的时候学生会开始招新,我需要准备一篇千字左右的讲稿,结果在演讲的前一周我就把讲稿写完了。然而在接下来的7天里我却满脑子都是讲稿的事:虽然我已经完...
博客很久没有更新了,最近计划出版一本Redis的入门书籍,所以时间都放到写书上了。其实写书倒也不算是件能让人忙起来的事情,但它却能轻易地占据人的生活。记得高一下学期刚开学的时候学生会开始招新,我需要准备一篇千字左右的讲稿,结果在演讲的前一周我就把讲稿写完了。然而在接下来的7天里我却满脑子都是讲稿的事:虽然我已经完...
博客很久没有更新了,最近计划出版一本Redis的入门书籍,所以时间都放到写书上了。其实写书倒也不算是件能让人忙起来的事情,但它却能轻易地占据人的生活。记得高一下学期刚开学的时候学生会开始招新,我需要准备一篇千字左右的讲稿,结果在演讲的前一周我就把讲稿写完了。然而在接下来的7天里我却满脑子都是讲稿的事:虽然我已经完...
不少互联网项目都需要对项目的数据,如用户数量的增长趋势、最近注册的用户列表和当前在线用户数量等进行统计,而我最近在做的项目需要将这些统计数据以图表的形式展现出来。为此我开发了统计框架Ranaly,以使开发者只需要简单地配置就能生成一个强大的统计数据可视化后台。
在使用 Express 框架开发网站或 API 时,经常会因为 Node.js 的异步流程造成逻辑代码中嵌套回调函数过多的问题。这时可以考虑使用 Promise 来简化这个流程。关于 Promise 可以参考以下资料:
写给那些从来不使用别人的 Vim 的人
最近在做一个产品列表页面,布局如右图所示。页面中有若干个 item,其中每个 item 都向左浮动,并包含在自适应浏览器窗口宽度的父元素中。
最近在做一个产品列表页面,布局如右图所示。页面中有若干个 item,其中每个 item 都向左浮动,并包含在自适应浏览器窗口宽度的父元素中。
作为 Node 社区最受欢迎的框架,Express 在沿用 Connect 的 middleware 机制的同时,还提供了在定义路由时使用的 route-specific middleware(下面称“路由中间件”)。路由中间件与 Connect 的 middleware 十分相似,可以用来执行预载入资源或校验请...
作为 Node 社区最受欢迎的框架,Express 在沿用 Connect 的 middleware 机制的同时,还提供了在定义路由时使用的 route-specific middleware(下面称“路由中间件”)。路由中间件与 Connect 的 middleware 十分相似,可以用来执行预载入资源或校验请...
作为 Node 社区最受欢迎的框架,Express 在沿用 Connect 的 middleware 机制的同时,还提供了在定义路由时使用的 route-specific middleware(下面称“路由中间件”)。路由中间件与 Connect 的 middleware 十分相似,可以用来执行预载入资源或校验请...
模块(Module)的内部成员是指没有通过 module.exports 导出的变量或函数。如下面的示例模块:
滤镜对于照片而言,起到的是雪中送炭和锦上添花的作用。优秀的滤镜,能让随手之作显得别有风味,又能为已经绝色的照片画龙点睛。现在几乎凡是和照片相关的应用程序都有滤镜功能,而相较而言介绍滤镜原理和实现的文章又少之又少,为此我专门写了这篇文章来系统地讲解滤镜是如何实现的。
这篇日志将以偏技术的角度介绍我最近在做的业余项目 Code Game,其中我会解释 Code Game 对某些技术是如何进行取舍的,包括为什么不使用 CoffeeScript 以及选择 Myth 代替 Less/Sass 的原因。
五年前,我在 GitHub 开源了一个 macOS 上的 Redis 管理工具,取名 Medis,同时把它放到了 App Store 以 30 元一个的价格出售。换句话说,你既可以直接免费下载使用,也可以花 30 元购买,两者功能一样,全凭自愿。