Node.js 403/禁止使用NodeJS/Express在favicon上使用

Node.js 403/禁止使用NodeJS/Express在favicon上使用,node.js,express,favicon,http-status-code-403,locomotivejs,Node.js,Express,Favicon,Http Status Code 403,Locomotivejs,我目前正在测试一个非常简单的“hello world”应用程序 我想我已经设置了connect favicon中间件,但是当我访问任何路由(例如“/”时)时,我会在控制台中看到以下内容: 127.0.0.1 - - [Tue, 17 Jul 2012 21:41:25 GMT] "GET / HTTP/1.1" 200 1491 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like

我目前正在测试一个非常简单的“hello world”应用程序

我想我已经设置了connect favicon中间件,但是当我访问任何路由(例如“/”时)时,我会在控制台中看到以下内容:

127.0.0.1 - - [Tue, 17 Jul 2012 21:41:25 GMT] "GET / HTTP/1.1" 200 1491 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
Error: Forbidden
    at SendStream.error (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/send/lib/send.js:142:16)
    at SendStream.pipe (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/send/lib/send.js:307:52)
    at Object.static (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/connect/lib/middleware/static.js:78:8)
    at next (/usr/local/lib/node_modules/locomotive/node_modules/express/node_modules/connect/lib/http.js:204:15)
    at pass (/usr/local/lib/node_modules/locomotive/node_modules/express/lib/router/index.js:219:24)
    at Router._dispatch (/usr/local/lib/node_modules/locomotive/node_modules/express/lib/router/index.js:280:5)
    at Object.middleware [as handle] (/usr/local/lib/node_modules/locomotive/node_modules/express/lib/router/index.js:45:10)
    at next (/usr/local/lib/node_modules/locomotive/node_modules/express/node_modules/connect/lib/http.js:204:15)
    at multipart (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/connect/lib/middleware/multipart.js:52:61)
    at module.exports (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:57:9)
127.0.0.1 - - [Tue, 17 Jul 2012 21:41:25 GMT] "GET /favicon.ico HTTP/1.1" 403 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"

你知道是什么原因吗?

看起来发送中间件不是根,而是包含“.”。我不知道为什么
/favicon.ico
会导致isMalicious返回
true
。我建议调试到
isMalicious
并检查
this.\u root
this.path
。可能是
send
favicon
中间件中存在一些错误,或者您的代码没有配置它们。除非您发布一些代码,否则无法对此提供帮助。

作为依赖项拉入了哪个版本的Express和Connect?我遇到了一个错误express@3.0.0beta6,我想这已经在beta7中修复了(尽管我自己还没有确认)。我在跑步express@3.0.0beta4,我知道这是有效的,您可以通过执行以下操作恢复到这一点:

$ npm uninstall express
$ npm install express@3.0.0beta4
机车的主分支使用的是Express 3.x Beta,它通常非常可靠。我期待着它稳定下来,推出新版本。

与?(express中最近的一个bug)