2011-09-20 10 views
9

Sto creando un'applicazione web NodeJS tramite ExpressJS. Ho le seguenti due rotte (tra gli altri): "Esecuzione indice di verifica"I percorsi con parametri vengono chiamati due volte?

app.get('/user/reset/verify', function(req, res) { 
    console.log("Executing verification index."); 
    res.render("verify/index"); 
}); 

app.get('/user/reset/verify/:email/:token', function(req, res) { 
    console.log("Executing verification change."); 
    res.render("verify/change"); 
}); 

Quando vado alla pagina di indice di verifica, vedo stampato una volta sulla console. Tuttavia, quando vado alla pagina di modifica della verifica, vedo "Esecuzione della modifica della verifica". stampato due volte sulla console.

Ho notato che questa è una tendenza con i percorsi nella mia app. I percorsi che contengono parametri vengono sempre eseguiti due volte, mentre i percorsi senza parametri vengono eseguiti (correttamente) solo una volta.

Perché i percorsi con parametri vengono eseguiti due volte?

Le viste sottoposte a rendering contengono solo HTML semplice: nulla che possa causare un'altra richiesta alla pagina. Inoltre, sto emettendo queste richieste da un browser Chrome.

Piattaforma/Versioni:

  • NodeJS: 0.5.5 finestre costruiscono (in esecuzione su Windows 7)
  • espresso: 2.4.6
  • Connect: 1.7.1
+0

Mi aspetto che sia un nodo 0.5.5 bug. Prova a usare 0.4.12 – Raynos

+0

@Raynos: Ok, cercherò di trovare un file eseguibile di Windows di 0.4.12 e vedere se questo risolve il problema. –

+1

non esiste un eseguibile di Windows per 0.4.12. Express non è supportato con 0.5.x (usa a proprio rischio). Vi consiglio di usare 0.4 su linux – Raynos

risposta

17

Il la seconda richiesta è /favicon.ico Prova a registrare la tua richiesta request.url nel tuo gestore di richieste http_server, vedrai il primo è l'url del browser e il prossimo la favicon.

+0

quindi come possiamo aggirare questo? – Asool

-1

Se si utilizza chrome: Quando si scrive l'url chrome, inviare una richiesta di verifica dell'url prima di premere Invio.

Prova a registrare il middleware url console.log (req.url) posiziona la tua console da parte il tuo broswer quindi inizia a scrivere l'url, vedrai la console logging a get access.

Problemi correlati