带参数的路由被调用两次?

发布于 2024-12-05 13:36:06 字数 754 浏览 1 评论 0原文

我正在通过 ExpressJS 创建 NodeJS Web 应用程序。我有以下两条路线(除其他外):

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

当我转到验证索引页面时,我看到“正在执行验证索引”。在控制台上打印一次。但是,当我进入验证更改页面时,我看到“正在执行验证更改”。在控制台上打印两次。

我注意到这是我的应用程序中路线的趋势。包含参数的路由总是执行两次,而没有参数的路由仅(正确)执行一次。

为什么带有参数的路由会被执行两次?

正在呈现的视图仅包含简单的 HTML - 不会导致对页面的另一个请求。另外,我从 Chrome 浏览器发出这些请求。

平台/版本:

  • NodeJS:0.5.5 windows build(在 Win 7 上运行)
  • Express:2.4.6
  • Connect:1.7.1

I am creating a NodeJS web application via ExpressJS. I have the following two routes (among others):

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

When I go to the verification index page, I see "Executing verification index." printed once on the console. However, when I go to the verification change page, I see "Executing verification change." printed twice on the console.

I have noticed that this is a trend with the routes in my app. Routes that contain parameters are always executed twice, while routes without parameters are only (properly) executed once.

Why are the routes with parameters being executed twice?

The views that are being rendered only contain simple HTML - nothing that would cause another request to the page. Also, I am issuing these requests from a Chrome browser.

Platform/Versions:

  • NodeJS: 0.5.5 windows build (running on Win 7)
  • Express: 2.4.6
  • Connect: 1.7.1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜未央樱花落 2024-12-12 13:36:06

第二个请求是 /favicon.ico
尝试在 http_server 请求处理程序中控制台记录您的 request.url,您将看到第一个是浏览器 url,下一个是网站图标。

The second request is the /favicon.ico
Try to console log your request.url in your http_server request handler, you'll see the first is the browser url and the next the favicon.

浅忆 2024-12-12 13:36:06

如果您使用的是 Chrome:
当您编写 url 时,chrome 会在按 Enter 之前发送一个 get 请求来检查 url。

尝试记录中间件 url console.log(req.url) 将控制台放在浏览器旁边,然后开始写入 url,您将看到控制台记录获取访问权限。

If you are using chrome:
When you write your url chrome send a get request to check the url before you hit enter.

Try to log the middleware url console.log(req.url) position your console aside your broswer then start to write the url, you will see console logging a get access.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文