2016-04-18 9 views
3

Ich bin eine node.js App ausgeführt und aus irgendeinem Grund schlägt die Knoten App fehl, wenn das Bluebird-Modul require('bluebird') erfordert.Knoten erfordern Bluebird fehlgeschlagen

  • Knoten Version: 0.10.40
  • drossel Version: 3.3.4

Das ist wirklich seltsam und das einzige, was ich weg von gehen haben, ist der Stack-Trace hier:

TypeError: Cannot call method 'split' of undefined 
    at Object.setBounds (app/node_modules/bluebird/js/release/debuggability.js:614:48) 
    at module.exports (app/node_modules/bluebird/js/release/promise.js:762:11) 
    at Object.<anonymous> (app/node_modules/bluebird/js/release/bluebird.js:9:36) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    var firstStackLines = firstLineError.stack.split("\n"); 

Auch hier läuft die App ganz gut. Wenn ich diese Zeile require('bluebird') hinzufüge, stürzt es ab und ich bekomme diese Stack-Trace. Irgendwelche Ideen, woraus dieser Fehler kommt?

[Bearbeiten]

in Zeile node_modules/bluebird/js/release/debuggability.js:614:48

> console.log(firstLineError); 
[Error] 
> console.log(firstLineError.message); 

> console.log(firstLineError.stack); 
undefined 
> console.log(firstLineError.toString()); 
Error: Error 
> console.log(firstLineError instanceof Error); 
True 

Es ist ein Fehler-Objekt, das

temporäre Lösung im Wesentlichen leer ist

Wenn ich die Zeile node_modules/bluebird/js/release/debuggability.js:614 zu

var firstStackLines = (firstLineError.stack) ? firstLineError.stack.split("\n") : ""; 

und Linie 615 bis

var lastStackLines = (lastLineError.stack) ? lastLineError.stack.split("\n") : ""; 

es funktioniert gut. Nicht sicher, ob dies dauerhafte Auswirkungen hat

+0

Was passiert bei 'app/node_modules/bluebird/js/release/debuggability.js: 614: 48'? – andyk

+0

'var firstStackLines = firstLineError.stack.split (" \ n ");' – Jeremy

+0

Können Sie ein 'console.log (firstLineError)' kurz vor diesem Punkt hinzufügen und sehen, was dort drin ist? – dvlsg

Antwort

0

Manuell entfernen Sie Ihren Ordner Knotenmodule und führen Sie erneut npm install, wie es klingt wie NPM nicht richtig installiert etwas.

+0

das hat nichts getan. immer noch die gleiche Fehlermeldung – Jeremy

+0

siehe die __temployment solution__ Ich habe gerade hinzugefügt – Jeremy

0

Sie verwenden die neueste Version von Bluebird mit einer veralteten Version von Node.

+0

danke für diesen Eingang. Können Sie eine Version von Bluebird empfehlen, die mit der von mir verwendeten Version von Node verwendet werden soll? – Jeremy

+0

@jeremy tatsächlich, können Sie auf Chat kommen? Oder Twitter? Wir können zuerst einige andere Dinge ausprobieren. Mein Twitter ist der gleiche Benutzername. – amingilani

1

I den ähnlichen Defekt hatte, genauer gesagt:

.../node_modules/bluebird/js/release/debuggability.js:673 
var firstStackLines = firstLineError.stack.split("\n"); 

wenn der Knoten 6.2.2 mit drossel^3.4.1 verwenden.

Durch die Aktualisierung auf bluebird^3.4.6 mit Knoten v6.2.2 konnte der Fehler behoben werden.

+0

Ich habe das gleiche Problem mit Knoten v 6.7.0 und Bluebird 3.4.6 var firstStackLines = firstLineError.stack.split ("\ n"); \t Fehler: Kein Element indiziert von 194 '' ' –

0

Das Problem für mich war, dass ich ein weiteres Modul pretty-error wurde unter Verwendung von, den das Objekt console wurde modifiziert, und daher wurde Empfangen bluebird s Fehlerbehandlung ein mutiertes console Objekts, das nicht die Form war, dass bluebird erwartet.