TLDR:Node应用程序在本地工作,在Nodester.com上不工作,这似乎是一个npm问题。

详细版本:

我用bogart和couchdb(基本上在http://howtonode.org/bogart-couchdb之后)编写了一个节点应用程序,它在本地运行良好。

我在本地安装了节点扩展

npm install bogart
npm install couchdb


在Nodester上,我通过CLI以如下方式安装了它们

nodester npm install bogart couchdb


它返回了成功。

现在我将工作代码推送到Nodester.com仓库,遇到麻烦,脚本崩溃了,日志说

Error: Cannot find module 'zlib'
at Function._resolveFilename (module.js:322:11)
at Function._load (module.js:267:25)
at require (module.js:351:19)
at Object.<anonymous> (/node_modules/bogart/lib/middleware.js:67:16)
at Function.<anonymous> (/node_modules/bogart/lib/middleware.js:781:15)
at /node_modules/bogart/lib/bogart.js:162:35
at Array.forEach (native)
at App.start (/node_modules/bogart/lib/bogart.js:155:21)
at Object.<anonymous> (/app/server.js:80:5)
at Module._compile (module.js:407:26)


之后,我尝试了

nodester npm install zlib


它回来了

nodester info installing these npm packages: zlib
nodester > [email protected] preinstall /node/app/username/repo/node_modules/zlib
nodester > node-waf clean || true; node-waf configure build
nodester [email protected] ./node_modules/zlib
nodester Nothing to clean (project not configured)
nodester Setting srcdir to                        : /node/app/username/repo/node_modules/zlib
nodester Setting blddir to                        : /node/app/username/repo/node_modules/zlib/build
nodester Checking for program g++ or c++          : /usr/bin/g++
nodester Checking for program cpp                 : /usr/bin/cpp
nodester Checking for program ar                  : /usr/bin/ar
nodester Checking for program ranlib              : /usr/bin/ranlib
nodester Checking for g++                         : ok
nodester Checking for node path                   : not found
nodester Checking for node prefix                 : ok /usr
nodester Checking for library z                   : yes
nodester 'configure' finished successfully (0.128s)
nodester Waf: Entering directory `/node/app/username/repo/node_modules/zlib/build'
nodester [1/2] cxx: src/node-zlib.cc -> build/default/src/node-zlib_1.o
nodester ../src/node-zlib.cc: In function 'v8::Handle<v8::Value> ZLib_deflate(const v8::Arguments&)':
nodester ../src/node-zlib.cc:82: warning: left-hand operand of comma has no effect
nodester ../src/node-zlib.cc: In function 'v8::Handle<v8::Value> ZLib_inflate(const v8::Arguments&)':
nodester ../src/node-zlib.cc:83: warning: left-hand operand of comma has no effect
nodester [2/2] cxx_link: build/default/src/node-zlib_1.o -> build/default/zlib_bindings.node
nodester Waf: Leaving directory `/node/app/username/repo/node_modules/zlib/build'
nodester 'build' finished successfully (0.214s)


看起来它尚未完全安装,但是现在,它似乎已启动,而不是由于服务器崩溃而导致的503。但是现在脚本会抛出一个

An error occurred.Object # has no method 'createGzip'
Stack Trace:
TypeError: Object # has no method 'createGzip' at /node_modules/bogart/lib/middleware.js:88:33 at notify (/node_modules/bogart/node_modules/promised-io/lib/promise.js:181:22) at notifyAll (/node_modules/bogart/node_modules/promised-io/lib/promise.js:164:5) at /node_modules/bogart/node_modules/promised-io/lib/promise.js:205:3 at notify (/node_modules/bogart/node_modules/promised-io/lib/promise.js:181:22) at [object Object].then (/node_modules/bogart/node_modules/promised-io/lib/promise.js:234:4) at notify (/node_modules/bogart/node_modules/promised-io/lib/promise.js:183:17) at notifyAll (/node_modules/bogart/node_modules/promised-io/lib/promise.js:164:5) at [object Object]. (/node_modules/bogart/node_modules/promised-io/lib/promise.js:211:3) at /node_modules/bogart/lib/middleware.js:347:22


抱歉,文本墙不对,但这有点奇怪,因为它在本地运行没有任何问题,数据库连接正常。

https://github.com/devongovett/pdfkit/issues/42中的类似问题

有任何想法吗?

最佳答案

现在,在nodester开发人员的帮助下,我可以提供一个解释为什么当前无法解决此问题。

在0.6.x之前的版本中,Node.js的zlib库有时会导致某些节点模块出现问题(与绑定有关)。固定为0.6。尝试通过npm在0.4.x上安装pdfkit时也会出现类似问题。

但是,Nodester当前(2012年2月下旬)运行于0.4.9(ish),并且正在开发对0.6.x或更高版本的支持。这意味着,bogart将不得不等待它,直到在Nodester上运行不同版本的Node.js。

感谢Nodester开发人员的快速,广泛和迷人的支持。

关于node.js - 在Nodester上使用bogart,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9439957/

10-11 15:02