我目前正在测试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 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"
知道造成这种情况的原因是什么?
答案 0 :(得分:1)
看起来发送中间件是considering this request malicious,因为它不是根并包含“..”。我不确定为什么/favicon.ico
会导致isMalicious返回true
。我建议调试isMalicious
并检查this._root
和this.path
。可能是send
或favicon
中间件中的一些错误,或者您的代码可能没有配置它们。除非你发布一些代码,否则无法帮上忙。
答案 1 :(得分:1)
什么版本的Express和Connect作为依赖项被拉入?我遇到了一个带有Express@3.0.0beta6的错误,我认为已经在beta7中修复了(虽然我还没有确认自己)。我正在运行express@3.0.0beta4,我知道它有效,你可以通过这样做来恢复:
$ npm uninstall express
$ npm install express@3.0.0beta4
机车的主分公司正在使用Express 3.x测试版,这通常非常可靠。我期待着稳定,推出新版本。