Question

TLDR: Node app works locally, doesn't work on Nodester.com, seems to be a npm issue.

Detailed Version:

I wrote a node app with bogart and couchdb (basically following http://howtonode.org/bogart-couchdb) and it runs fine locally.

I installed the node extensions locally with

npm install bogart
npm install couchdb

On Nodester, i installed them via the CLI as

nodester npm install bogart couchdb

and it returned success.

Now i pushed my working code to the Nodester.com repo and ran into trouble, script crashes and the log said

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)

After that, i tried

nodester npm install zlib

and it returned

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)

Looks like it was not completely installed, but now, instead of a 503 due to a server crash, it seems to start. But now the script throws a

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

Sorry for the walls of text, but this is kinda strange since it runs locally without any problem, the db connect and everything.

Similar issue at https://github.com/devongovett/pdfkit/issues/42

Any ideas?

Was it helpful?

Solution

With the help of the nodester devs, I can now provide an explanation why a fix for this issue is currently unavailable.

The zlib library of Node.js in versions prior to 0.6.x can sometimes cause issues (related to bindings) with certain node modules. This was fixed in 0.6. Similar issues arise when trying to install pdfkit on 0.4.x via npm.

However, Nodester currently (this is late February 2012) runs on 0.4.9(ish), and support for 0.6.x or higher is currently under development. This means, bogart will have to sit it out until different versions of Node.js run on Nodester.

A big shoutout to the devs of Nodester for their fast, extensive and charming support.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top