2014-11-09 80 views
0

下面是我如何搜索Npm包,但它导致Heroku超时或超出内存限制,所以我希望有人知道更聪明的解决方案。通过节点搜索npm包

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。

+0

在heroku上,对于dynos的web请求有30秒的超时时间。如果你想做这样的长时间运行的任务,你需要创建一个后台作业。每个heroku平台都有具体的例子,并在这里讨论这个过程:https://devcenter.heroku.com/articles/background-jobs-queueing – 2014-11-10 12:05:46

+0

是的,但我仍然会用完内存。 – webjay 2014-11-11 03:17:00

+0

啊,我明白了。一个月前有一个Javascript Jabber插曲谈到npm 2.0的改进。我不记得一个API即将出现,但嘿,它是开源的,我相信他们会喜欢某个人来构建它。 :) – 2014-11-11 11:49:23

回答