MongoDB地理空间(2d)索引创建与查询

 2016年04月14日    379

LBS(Location Based Services)定位服务,即根据用户位置查询用户附近相关信息,这一功能在很多应用上都有所使用。基于用户位置进行查询时,需要提供用户位置的经纬度。为了提高查询速度,MongoDB为坐标平面查询提供了专门的索引,称作地理空间(2d)索引。

阅读全文

Node.js 事件循环(Event Loop)介绍

 2016年04月13日    677

JavaScript是一种单线程运行但又绝不会阻塞的语言,其实现非阻塞的关键是“事件循环”和“回调机制”。Node.js在JavaScript的基础上实现,同样是单线程运行的语言。在单线程中要解决高并发的问题,就要采用非阻塞、异步编程的方式。简单的说,就是在非常耗时的I/O操作中,采用非阻塞的方式继续执行后续的代码,并且进入事件循环(Event Loop)。当I/O操作完成,程序会通过回调函数的方式通知原操作。

阅读全文

Node.js(npm)中的包和模块

 2016年04月08日    194

Node.js 基于npm包管理系统,建立了强大的模块生态圈。在Node.jsnpm中,对包(package)和模块(module)有非常具体的定义,但我们确经常将它们混淆。本文根据个人经验并参照官方文档,解释和讨论二者的异同。

阅读全文

React Node.js(Express)服务端渲染、服务端/客户端组件共享示例

 2016年04月04日    1405

React 组件可以客户端进行渲染。在客户端渲染组件时,是在页面加载完成后才开始渲染的。这会对页面加载效率造成影响,也不利于搜索引擎的抓取(不利于SEO)。基于React 虚拟组件机制,我们可以在服务端对组件进行渲染。在服务端渲当React 组件不仅可以提升页面的加载效率,而且可以服务端在客户端共用组件,提高组件的复用率。本文将通过一个简单的示例,介绍在Node.js Express框架服务端渲染的实现。

阅读全文