2011-09-20 7 views
9

Estoy creando una aplicación web NodeJS a través de ExpressJS. Tengo las dos rutas siguientes (entre otros):¿Las rutas con parámetros se llaman dos veces?

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"); 
}); 

Cuando voy a la página de índice de verificación, veo "Ejecución de índice de verificación." impreso una vez en la consola. Sin embargo, cuando voy a la página de cambio de verificación, veo "Ejecutar el cambio de verificación". impreso dos veces en la consola.

He notado que esta es una tendencia con las rutas en mi aplicación. Las rutas que contienen parámetros siempre se ejecutan dos veces, mientras que las rutas sin parámetros solo se ejecutan (correctamente) una vez.

¿Por qué las rutas con parámetros se ejecutan dos veces?

Las vistas que se están representando solo contienen HTML simple, nada que pueda causar otra solicitud a la página. Además, estoy emitiendo estas solicitudes desde un navegador Chrome.

plataforma/Versiones:

  • NodeJS: 0.5.5 compilación de Windows (que se ejecuta en Windows 7)
  • Express: 2.4.6
  • conexion: 1.7.1
+0

Supongo que es un error del nodo 0.5.5. Intenta usar 0.4.12 – Raynos

+0

@Raynos: Bien, intentaré encontrar un ejecutable de Windows de 0.4.12 y ver si eso soluciona el problema. –

+1

no hay ventanas ejecutables para 0.4.12. Express no es compatible con 0.5.x (use bajo su propio riesgo). Te recomiendo que uses 0.4 en Linux – Raynos

Respuesta

17

El la segunda solicitud es /favicon.ico Intente con la consola registrar su request.url en su manejador de solicitudes http_server, verá que la primera es la url del navegador y la siguiente es el favicon.

+0

entonces, ¿cómo podemos solucionar esto? – Asool

-1

Si está usando chrome: Cuando escribe su url chrome envíe una solicitud de obtención para verificar la url antes de presionar enter.

Trate de registrar el middleware url console.log (req.url) coloque su consola a un lado de su broswer y luego comience a escribir la url, verá la consola registrando un acceso de obtención.

Cuestiones relacionadas