Usando Bogart su Noderster
Domanda
TLDR: l'app Node funziona a livello locale, non funziona su nodester.com, sembra essere un problema NPM.
Versione dettagliata:
Ho scritto un'app per nodi con Bogart e CouchDB (fondamentalmente seguendo http://howtonode.org/bogart-couchdb) ed esso funziona bene localmente.
Ho installato le estensioni del nodo localmente con
npm install bogart
npm install couchdb
Su Noderster, li ho installati tramite la CLI come
nodester npm install bogart couchdb
ed esso successo restituito.
Ora ho spinto il mio codice di lavoro sul repository nodester.com e mi sono imbattuto nei guai, Lo script si arresta in modo anomalo E il registro ha detto
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)
Dopodiché, ho provato
nodester npm install zlib
E è tornato
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)
Sembra che fosse non completamente installato, ma ora, invece di un 503 a causa di un crash server, sembra iniziare. Ma ora lo script lancia un
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
Ci scusiamo per le pareti del testo, ma questo è un po 'strano poiché funziona localmente senza problemi, il DB si connette e tutto.
Problema simile a https://github.com/devongovett/pdfkit/issues/42
Qualche idea?
Soluzione
Con l'aiuto degli sviluppatori di nodester, ora posso fornire una spiegazione perché a La correzione per questo problema non è attualmente disponibile.
Il Zlib Libreria di node.js nelle versioni Prima di 0.6.x A volte può causare problemi (correlati ai legami) con determinati moduli di nodo. Questo è stato fissato in 0,6. Problemi simili sorgono quando si tenta di installare PDFKIT su 0.4.x tramite NPM.
Tuttavia, NODESTER Attualmente (questa è fine a febbraio 2012) Funziona su 0.4.9(ISH) e il supporto per 0,6.x o superiore è attualmente in fase di sviluppo. Ciò significa che Bogart dovrà sederlo fino a quando le diverse versioni di Node.js funzionano su Noderster.
Un grande grido agli sviluppatori di Noderster per il loro supporto veloce, ampio e affascinante.