我有一个新手问题。我有一个 flash facebook 应用程序,它使用 facebook 积分。我使用 express 框架来提供包含 application.swf 的静态 html 文件。
这就是我配置快递的方式:
var app = express();
app.configure(function(){
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(express.logger());
app.use(app.router);
// Redirections for default pages
app.all("/", function(req, res) { res.redirect("/index.html"); });
app.all("/facebook", function(req, res) { res.redirect("/facebook/index.html"); });
// Serve static files
app.all("*", express.static('/my/static/files/directory'));
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
require('http').createServer(app).listen(80);
require('https').createServer({
key: fs.readFileSync('./certs/www.app.org/www.app.org.key'),
cert: fs.readFileSync('./certs/www.app.org/www_app_org.crt'),
ca: fs.readFileSync('./certs/www.app.org/www_app_org.ca-bundle'),
}, app).listen(443);
我使用这种结构在 http 和 https 请求上为我的应用程序提供服务。当传入的 http 请求类型为 GET 时,它运行良好。
但是,当用户在应用程序中购买商品时,facebook 会向我的应用程序发送 POST 请求。问题是当收到对静态文件目录的 POST 请求时 express 抛出 404 错误。
PS:POST 请求被发送到相同的 url,这对 GET 请求非常有效。
以下是监测结果:
node_local:httpserver 88.250.59.159 - - [Fri, 17 Aug 2012 11:51:09 GMT] "POST /facebook/index.html HTTP/1.1" 404 - "-" "Apache-HttpClient/4.1.3 (java 1.5)"
node_local:httpserver 88.250.59.159 - - [Fri, 17 Aug 2012 11:50:59 GMT] "GET /facebook/index.html HTTP/1.1" 200 5892 "-" "Apache-HttpClient/4.1.3 (java 1.5)"