【发布时间】:2016-04-16 03:37:09
【问题描述】:
我正在尝试创建一个将与github API 交互的节点模块,但会将结果缓存在 redis 中。你可以在https://github.com/shamoons/github-redis-etag 关注我的进展(请叉我!)。作为基础,我使用 mikedeboer 的github package。
我想做的是创建一个类来扩展GitHubApi 模块的功能,并在调用 Github 调用之前调用一些 redis 魔法。到目前为止我所拥有的是:
_ = require 'lodash'
base91 = require 'base91'
GitHubApi = require 'github'
redis = require 'redis'
util = require 'util'
class GitHubETag extends GitHubApi
repos = {}
constructor: (defaults = {}) ->
@github = new GitHubApi
version: '3.0.0' || defaults.version?
debug: false || defaults.false?
protocol: 'http' || defaults.protocol?
host: null || defaults.host?
pathPrefix: '' || defaults.pathPrefix?
timeout: null || defaults.timeout?
@redisClient = redis.createClient ('6379' || defaults.redis?.port?), ('127.0.0.1' || defaults.redis?.host?)
githubObjects = ['events', 'gists', 'gitdata', 'issues', 'markdown', 'orgs', 'pullRequests', 'repos', 'search', 'statuses', 'user']
_.each githubObjects, (object) =>
@object = {}
_.each _.keys(@github[object]), (key) =>
fn = @github[object][key]
@object[key] = @github[object][key]
console.log "#{object}:#{key}"
我意识到这是各种各样的错误。为了实例化它,我正在做:
github = new GitHubETag
version: '3.0.0'
redis:
port: '6379'
host: '127.0.0.1'
console.log github
这也是错误的,因为它返回与GitHubApi 相同的对象,但github: 等于所有这些。因此,如果有人有任何建议或提示,我将不胜感激。
谢谢!
【问题讨论】:
-
到底是什么问题?
标签: node.js coffeescript decorator