在Nodester上使用bogart

TLDR:节点应用程序在本地工作,在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 > zlib@1.0.5 preinstall /node/app/username/repo/node_modules/zlib nodester > node-waf clean || true; node-waf configure build nodester zlib@1.0.5 ./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

有任何想法吗?

在nodeter开发者的帮助下,我现在可以解释为什么目前不能解决这个问题

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

然而, Nodester目前(2012年2月下旬) 运行在0.4.9 (ish),目前正在开发支持0.6.x或更高的版本。 这意味着,bogart将不得不坐直到不同版本的Node.js在Nodester上运行。

对于Nodester的开发者来说,他们的快速,广泛和迷人的支持是一个很大的鼓舞。