<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[闻道百]]></title><description><![CDATA[最近专心于nodejs与C++配合编程的研究]]></description><link>https://blog.youkuaiyun.com/limite_god</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; limite_god]]></copyright><item><title><![CDATA[自己实现PostgresQL的nodejs驱动，分享给大家]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/44702105</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/44702105</guid><author>limite_god</author><pubDate>Sat, 28 Mar 2015 15:48:40 +0800</pubDate><description><![CDATA[PostgresQL性能上不输Mysql，而且支持很多高级特性，于是我写了这个项目，根据libpg的c驱动，封装了这个nodejs驱动。
项目地址:
git clone https://code.youkuaiyun.com/limite_god/pgsql.git

开发难点、待实现功能、特性

1、nodejs的v0.12.0开始，api有了不少变化，熟悉这些变化用来不少时间；
2、libp]]></description><category></category></item><item><title><![CDATA[使用makefile编译nodejs模块]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/43877159</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/43877159</guid><author>limite_god</author><pubDate>Wed, 18 Feb 2015 15:58:37 +0800</pubDate><description><![CDATA[使用过node-gyp编译nodejs的addon插件的人，一定很好奇，node-gyp到底帮你做了什么事情，还有，如果我们自己做，难度到底如何。本文不作makefile文件语法的讲解，如果你不懂， 没关系，能看懂基本流程就好。抛开node-gyp，你会发现，有些复杂的东西其实是基于很简单的原理。
环境
操作系统为centos7，已经安装了nodejs，版本为0.10.36，其实差不多新的版本]]></description><category></category></item><item><title><![CDATA[libuv之开启tcp服务端监听，并获得客户端的ip及端口]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/43762799</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/43762799</guid><author>limite_god</author><pubDate>Thu, 12 Feb 2015 15:17:46 +0800</pubDate><description><![CDATA[libuv中处理tcp连接的handle叫做uv_tcp_t，可以认为它是uv_stream_t的子类，所以它是可以当作流来使用的，这篇主要内容不在这，其实主要介绍两个函数
UV_EXTERN int uv_tcp_getsockname(uv_tcp_t* handle, struct sockaddr* name,
    int* namelen);
UV_EXTERN int uv_tc]]></description><category></category></item><item><title><![CDATA[libuv之async使用]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/43700325</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/43700325</guid><author>limite_god</author><pubDate>Tue, 10 Feb 2015 10:43:31 +0800</pubDate><description><![CDATA[libuv中async的使用比较难理解一些，我们来一起学习下
简介
vu_async_t是我们要用的handle，这个handle用来在线程间通信的。我们看一下官方的解释
/*
 * uv_async_t is a subclass of uv_handle_t.
 *
 * uv_async_send wakes up the event loop and calls the async]]></description><category></category></item><item><title><![CDATA[libuv文件操作]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/43670735</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/43670735</guid><author>limite_god</author><pubDate>Mon, 09 Feb 2015 14:41:07 +0800</pubDate><description><![CDATA[libuv对文件操作的函数都封装在uv_fs开头的函数中，相关的handle就是uv_fs_t/uv_fs_s，我们来看一些它的定义
/* uv_fs_t is a subclass of uv_req_t */
struct uv_fs_s {
  UV_REQ_FIELDS
  uv_fs_type fs_type;
  uv_loop_t* loop;
  uv_fs_cb cb;
  s]]></description><category></category></item><item><title><![CDATA[libuv程序，捕获Ctrl+C事件]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/43668867</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/43668867</guid><author>limite_god</author><pubDate>Mon, 09 Feb 2015 11:22:26 +0800</pubDate><description><![CDATA[在命令行下执行程序的时候，我们经常使用Ctrl+C来停止程序的执行。下面，我们看看libuv库如何捕获这个事件
思路
我们开启一个空转的消息，让程序一直有消息可以消费，不至于退出，在捕获Ctrl+C事件之后，停止空转消息，程序自然就退出了。


代码
/*
 * test_signal_ctrl_c.cc
 * when user input ctrl+c, we can get th]]></description><category></category></item><item><title><![CDATA[libuv多线程处理的简单示例]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/43668235</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/43668235</guid><author>limite_god</author><pubDate>Mon, 09 Feb 2015 10:41:11 +0800</pubDate><description><![CDATA[简介
libuv提供了多线程处理的封装，使用起来也非常简单，一个handle，即uv_thread_t，在linux环境下，就是pthread_t，也就是unsigned long类型。相关的三个函数为
UV_EXTERN int uv_thread_create(uv_thread_t *tid,
    void (*entry)(void *arg), void *arg);
UV_EX]]></description><category></category></item><item><title><![CDATA[libuv入门之hello world]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/43565253</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/43565253</guid><author>limite_god</author><pubDate>Fri, 06 Feb 2015 15:40:58 +0800</pubDate><description><![CDATA[先声明一下我的工作主目录为：/data/workspace/nodejs/learn_nodejs/node_modules/libuv， 在后面我会简称为$PATH。
第一步，编写代码
在$PATH下新建test.cc，内容如下
/*
 * test.cc
 * empty msg loop
 *  这个例子新建了一个消息队列，但队列里没有任何消息，程序直接退出
 * Created on]]></description><category></category></item><item><title><![CDATA[linux下nodejs依赖库libuv库，开发环境准备]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/43564525</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/43564525</guid><author>limite_god</author><pubDate>Fri, 06 Feb 2015 14:55:53 +0800</pubDate><description><![CDATA[nodejs底层使用libuv库实现异步IO，如果对nodejs的回调函数习以为常，而不知libuv，那岂不是很遗憾。libuv在github上托管了自己的源码，但是我要学习的是希望适用于nodejs某一个版本的，这样的代码是可以经过简单处理，在nodejs之调用的。
第一步 下载nodejs源代码
打开nodejs官网，下载nodejs的源代码，注意，是源代码包。我使用的源码包版本是0.10]]></description><category></category></item><item><title><![CDATA[nodejs，addon，使用js中传递的函数参数]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/41684693</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/41684693</guid><author>limite_god</author><pubDate>Tue, 02 Dec 2014 21:41:56 +0800</pubDate><description><![CDATA[v8引擎中，js和你自己开发的addon模块，定义在一个上下文中，也就是说它们是相互认识的。这篇文章中我介绍下怎么在addon中，调用js中的函数。
我们先看v8的对象继承关系


Function是Value的子类，而js中传给C++的所有函数的类型是Value，所以逻辑上来讲，其实很简单，看文件目录结构




building.gyp很简单，如下
{
  "targets]]></description><category></category></item><item><title><![CDATA[在nodejs中，使用node-oracle连接oracle]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/41549681</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/41549681</guid><author>limite_god</author><pubDate>Thu, 27 Nov 2014 17:32:03 +0800</pubDate><description><![CDATA[nodejs连接oracle并不是那么容易，我使用的是node-oracle，安装还算顺利。
这个项目的地址是
https://github.com/joeferner/node-oracle

有兴趣的同学可以去看英文的安装步骤，在这个我结合自己的经验，给大家一点建议
下载oracle instant client
这个可以去oracle的官方网站上下载，地址随版本更新，经常变化，这]]></description><category></category></item><item><title><![CDATA[nodejs连接mysql及使用]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/41546539</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/41546539</guid><author>limite_god</author><pubDate>Thu, 27 Nov 2014 15:12:36 +0800</pubDate><description><![CDATA[首先，我们先安装mysql模块
npm install --save mysql

然后，我们在本地创建一个mysql数据库，名字叫clearn
create database clearn
创建一张表，就叫用户表（customer）
create table customer (id varchar(40) not null primary key,password varchar(]]></description><category></category></item><item><title><![CDATA[nodejs，addons入门之hello world]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/41523029</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/41523029</guid><author>limite_god</author><pubDate>Wed, 26 Nov 2014 21:40:29 +0800</pubDate><description><![CDATA[我们都知道，nodejs时基于google的v8引擎的，v8引擎呢，是用C或者说C++写的，各种第三方模块（大多数）也是用C++写的，原因很简单，效率高，而且，很多第三方模块原本就有C++版本，只要用addons包装一下，就可以在nodejs中直接使用。我门何不开发一个自己的模块试试呢。
首先，需要安装node-gyp，它可以帮我们把C/C++的源码编译成nodejs认识的格式。
npm in]]></description><category></category></item><item><title><![CDATA[nodejs使用mongodb，api分析]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/41517391</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/41517391</guid><author>limite_god</author><pubDate>Wed, 26 Nov 2014 16:00:17 +0800</pubDate><description><![CDATA[在nodejs中使用mongodb是一件很愉快的事情。
安装依赖模块
npm install --save mongodb
下面，我们来体验一些常用的api


创建连接
var MongoClient = require('mongodb').MongoClient;

var url = 'mongodb://127.0.0.1:27017/learn';
MongoClient]]></description><category></category></item><item><title><![CDATA[nodejs常用模块async(waterfall,each,eachSeries,whilst)]]></title><link>https://blog.youkuaiyun.com/limite_god/article/details/41486901</link><guid>https://blog.youkuaiyun.com/limite_god/article/details/41486901</guid><author>limite_god</author><pubDate>Tue, 25 Nov 2014 18:31:33 +0800</pubDate><description><![CDATA[a]]></description><category></category></item></channel></rss>