【问题标题】:Searching for npm packages via Node通过 Node 搜索 npm 包
【发布时间】:2015-01-05 15:25:10
【问题描述】:

这是我搜索 Npm 包的方法,但它会导致 Heroku 超时或超出内存限制,所以我希望有人知道更智能的解决方案。

npm = require 'npm'

packageCache = null

module.exports = class Npm
  @search: (searchTerms, callback) ->
    if packageCache?
      return callback null, packageCache
    npm.load ->
      npm.commands.search searchTerms, true, (err, results) ->
        return callback err if err?
        packageCache = results
        callback null, results

为什么 npmjs.org 没有 API 让我感到困惑。

【问题讨论】:

  • 在 heroku 上,对 dynos 的 Web 请求有 30 秒的超时。如果你想做这样一个长时间运行的任务,你需要创建一个后台作业。每个 Heroku 平台都有具体示例,并在此处讨论该过程:devcenter.heroku.com/articles/background-jobs-queueing
  • 是的,但我仍然会耗尽内存。
  • 啊,我明白了。一个月前有一期 Javascript Jabber 讨论了 npm 2.0 的改进。我不记得 API 即将出现,但是嘿,它是开源的,我相信他们会喜欢有人来构建它。 :)
  • 社区中似乎正在酝酿一些事情。我不明白为什么每个人都需要下载所有包。

标签: node.js heroku coffeescript npm


【解决方案1】:

我创建了一个可以为我缓存结果的 npm 包 (https://github.com/webjay/npm-search-store),虽然我仍然有内存问题,这似乎是一个知道 issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2018-12-16
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    相关资源
    最近更新 更多