我正在使用 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);