我使用Express將靜態HTML文件服務器profile.html
。在文件中,我有一個簡單的表單。它曾經有一個文件上傳,但爲簡單起見,我已將其縮減爲只有一個文本輸入。這是它的樣子:Express.js表單提交
<form action="profile.html" method="post" id="foo" enctype="multipart/form-data">
<input type="text" name="foo" value="bar">
<input type="submit">
</form>
當我點擊提交按鈕時,Chrome顯示提交表單的跡象,但它從來沒有發生過。提交表單時從不運行我的Node.js代碼profile.html
。如果我查看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);
你可以包括你的路線在服務器端看起來如何? – 2013-04-03 19:05:04