初心者の質問があります。フラッシュ Facebook アプリケーションがあり、Facebook クレジットを使用しています。高速フレームワークを使用して、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 リクエストは、GET リクエストで非常にうまく機能する同じ URL に送信されます。
監視結果は次のとおりです。
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)"