2015-10-05 15 views
5

Próbuję zaimplementować przekierowanie 301 podczas odwiedzania mojego adresu URL "www", aby przekierować na "nie-www". przekierowanie działa na localhost, a projekt jest w porządku. kiedy próbuję wdrożyć z mup, pojawia się ten błąd:mup wysyłać błędy podczas korzystania z 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. 

tutaj jest kod naruszający prawa. mup działa poprawnie po usunięciu go. to kody mieszka w /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() 
    } 
    }) 
} 

co to wszystko znaczy?

+0

Błąd "Nie można połączyć się z lokalnym portem 80: Połączenie odrzucone". Problem może polegać na tym, że na twoim serwerze nie można użyć portu 80, chyba że uruchomisz go jako root. W systemie Windows działa poprawnie na porcie 80, niestety nie na Linuksie. – Molda

+0

, które tak naprawdę nie wyjaśniają, dlaczego ten problem _nie_ dzieje się podczas używania 'thr. WebApp.connectHandlers'. :( – rkstar

+0

Tak więc WebApp.connectHandlers próbuje połączyć się z localhost: 80. Czy to jest właśnie to, co należy zrobić? Trudno jest pomóc, nie wiedząc, co robi connectHandlers: – Molda

Odpowiedz

0

Podczas gdy nie jestem do końca pewien, dlaczego ten konkretny zestaw kodu powoduje, że mup "wyrzucać" w ten sposób, znalazłem inne powody, które mogą być powiązane.

Podczas korzystania RabbitMQ (poprzez Wascally), moi koparki konsumenckie muszą być rejestrowane za pomocą

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

... i wewnątrz consumeFn() nie mam środowisko Meteor dostępny! Nie ma numeru Meteor i nie mam dostępu do żadnych kolekcji, które mogły zostać zdefiniowane w mojej aplikacji.

Co mogłem zrobić, to użyć Meteor.bindEnvironment na moim then nośniku obietnicy, która została zwrócona po zarejestrowaniu programu obsługi. Korzystanie z Meteor.bindEnvironment daje mi dostęp do wszystkich rzeczy, które spodziewam się mieć w mojej aplikacji Meteor.

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