nodejs +在不同的端口上表达奇怪的东西

时间:2013-01-24 09:51:42

标签: node.js express port middleware

有人可以告诉我发生了什么事吗? 我有一个答案:

var express = require('express')
  , http = require('http')
  , app = express()
  , port = 3000
  , mw = require('./lib/middlewareView')

app.use(mw());

app.get('/', function (req, res, next) {
  res.send("hello");
});

app.listen(port, function() {
    console.log("Listening on " + port);
});

和/lib/middlewareView.js:

module.exports = function middlewareView(){
  return function middlewareView(req, res, next) {
    console.log("middleware run");

    next();
  };
};

当我使用端口3000并打开http://localhost:3000/时,一切似乎都没问题。 控制台输出:

Listening on 3000
middleware run
hello

但如果我切换到端口5000,控制台会打印出来:

Listening on 5000
middleware run
hello
middleware run
middleware run

所以中间件在一次请求中运行了3次,对吗? 这是正常的吗?

1 个答案:

答案 0 :(得分:0)

它可能与favicon.ico有关 - 在检索您网站的图标时会发生这种情况,检查日志以确保...