読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

node.jsをいじり始める(3)

jQuery node.js JavaScript tumblr Tumblr Posts

ここ2-3日はtumblrのデータを取得するモジュールを改良したり、expressでquerystringやcookieを扱う方法とかを調べたり、試したりしていた。

tumblrのデータを取得するモジュールは今のところ下記のとおり。

var http = require('http');

exports.getPosts = function (params,func, errFunc)
{
    var api_path = '/v2/blog/';

    if (typeof (params.base_hostname) != 'string')
    {
        api_path += 'sfpgmr.tumblr.com';
    } else
    {
        api_path += params.base_hostname;
    }

    api_path += '/posts';

    if (typeof (params.type) == 'string')
    {
 //       if(params.type == 'text' || )
        api_path += '/' + patams.type;
        
    }

    api_path += '?api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

    if (params.id)
    {
        api_path += '&id=' & encodeURIComponent(params.id);
    }

    if (params.tag)
    {
        api_path += '&tag=' & encodeURIComponent(params.tag);
    }

    if (typeof (params.limit) == 'number')
    {
        if (params.limit > 20) params.limit = 20;
        api_path += '&limit=' & params.limit;
    }


    if (typeof (params.offset) == 'number')
    {
        api_path += '&offset=' + params.offset;
    }

    if (typeof (params.reblog_info) == 'boolean')
    {
        api_path += '&reblog_info' + params.reblog_info;
    }

    if (typeof (params.notes_info) == 'boolean')
    {
        api_path += '&notes_info' + params.notes_info;
    }

    if (typeof (params.format) == 'string')
    {
        if (params.format == 'html' || params.format == 'text')
        {
            api_path += '&format=' + params.format;
        }
    }


    http.get({
        host: 'api.tumblr.com',
        path: api_path
    },
     function (clres)
     {

         var content = "";

         clres.on('data', function (chunk)
         {
             content += chunk; 
         }).on('end', function ()
         {
             console.log(content);
             func(content);
         });
     }).on('error', function (e)
     {
         errFunc(e);
     });
};