2015-10-05 11 views
5

Ich versuche, eine 301-Weiterleitung zu implementieren, wenn Sie meine "www" URL besuchen, um auf "Nicht-www" umzuleiten. Die Weiterleitung funktioniert auf localhost und das Projekt baut gut auf. wenn ich versuche, mit MUP zu implementieren, ich diesen Fehler:mup Fehler bei der Verwendung von webapp.connecthandlers

x Invoking deployment process: FAILED 

    -----------------------------------STDERR----------------------------------- 
    :callback’ will be initialized after [-Wreorder] 
      v8::Handle<v8::Function> callback; 
            ^
    ../src/heap_output_stream.h:26:29: warning: ‘v8::Handle<v8::Value> nodex::OutputStreamAdapter::abort’ [-Wreorder] 
      v8::Handle<v8::Value> abort; 
           ^
    ../src/heap_output_stream.h:11:7: warning: when initialized here [-Wreorder] 
      OutputStreamAdapter(
     ^
    gyp info ok 
    npm WARN package.json [email protected] No description 
    npm WARN package.json [email protected] No repository field. 
    npm WARN package.json [email protected] No README data 
     % Total % Received % Xferd Average Speed Time Time  Time Current 
            Dload Upload Total Spent Left Speed 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0curl: (7) Failed to connect to localhost port 80: Connection refused 
    Latest deployment failed! Reverted back to the previous version. 

hier ist der säumige Code. mup funktioniert gut, wenn ich es entferne. dieses Codes lebt in /lib/_reroute-non-www.js

if(Meteor.isServer){ 
    WebApp.connectHandlers.use(function(req, res, next){ 
    if(req.headers.host == 'www.example.com'){ 
     res.writeHead(301, { 
     Location: 'https://example.com' 
     }) 
     res.end() 
    } else { 
     next() 
    } 
    }) 
} 

was bedeutet das alles?

+0

Der Fehler besagt "Verbindung zum Localhost-Port 80 konnte nicht hergestellt werden: Verbindung verweigert". Das Problem könnte sein, dass auf Ihrem Server Port 80 nicht verwendet werden kann, wenn Sie ihn nicht als Root ausführen. Unter Windows läuft es auf Port 80 leider nicht unter Linux. – Molda

+0

, die nicht wirklich erklären, warum dieses Problem nur auftritt, wenn Sie den 'WebApp.connectHandlers'-Code verwenden. :( – rkstar

+0

Also WebApp.connectHandlers versucht, eine Verbindung zu localhost: 80. Ist das, was es tun soll? Es ist schwer zu helfen, ohne zu wissen, was connectHandlers tut. – Molda

Antwort

0

Während ich bin mir nicht ganz sicher, warum dieser bestimmte Satz von Code verursacht mup zu "kotzen" so, habe ich andere Gründe gefunden, die möglicherweise verwandt sind.

Wenn RabbitMQ mit (via Wascally), müssen meine Verbraucher-Handler mithilfe von

Fiber(()=>{ 
    rabbit.handle(key, consumerFn) 
}).run() 

registriert werden ... und innen consumeFn() Ich habe nicht die Meteor-Umgebung zur Verfügung! Es gibt keine Meteor und ich habe keinen Zugriff auf Sammlungen, die möglicherweise in meiner Anwendung definiert wurden.

Was ich tun konnte, ist Meteor.bindEnvironment auf meinem then Handler eines Versprechens, das zurückgegeben wurde, wenn ich den Handler registriert. Mit Meteor.bindEnvironment habe ich Zugriff auf all die Dinge, die ich in meiner Meteor-App erwartet.

Wascally.request(key, {content: 'my content'}) 
    .then(Meteor.bindEnvironment((result)=>{ 
    // now i have access to my Meteor environment and all collections 
    })) 
Verwandte Themen