3

Express を使用して静的 HTML ファイルをサーバーにアップロードしていますprofile.html。ファイルには、単純なフォームがあります。以前はファイルのアップロードが含まれていましたが、簡単にするために単一のテキスト入力に減らしました。外観は次のとおりです。

<form action="profile.html" method="post" id="foo" enctype="multipart/form-data">
    <input type="text" name="foo" value="bar">
    <input type="submit">
</form>

送信ボタンをクリックすると、Chrome はフォームを送信する兆候を示しますが、実際には送信されません。profile.htmlフォームの送信時にNode.js コードが実行されません。Chrome の開発者ツールのネットワーク タブを見ると、リクエストがまだ保留中であることがわかります。これは、PHP と Apache を使用すると完全に機能しましたが、Node.js と Express を使用すると失敗します。

数え切れないほどの例を見てきましたが、これはコードの問題ではなく、構成の問題に違いないと感じています。フォームがサービスに送信されない原因は何ですか?

編集:これが私のルートの大まかな内容です:

//modules, initialization, etc.
var app = express();

app.use(function(req, res, next) {
    var data = "";
    req.setEncoding("utf8");
    req.on("data", function(chunk) {
        data += chunk;
    });
    req.on("end", function() {
        req.rawBody = data;
        next();
    });
});
app.use(express.bodyParser());

//Server up our templated static HTML
app.use("/search.html", search_html.handler);
app.use("/app.html", app_html.handler);
app.use("/login.html", login_html.handler);
app.use("/graph", graph_page.handler);
app.use("/dbrequest", dbrequest_page.handler);
app.use("/profile.html", profile_html.handler);

app.use("/", function(request, response) {
    response.redirect("login.html");
});
app.listen(3000);
4

1 に答える 1