ここでやろうとしていることは、
リクエストを/expense/new
送信するページからPOST
/expense/newPost
Expressjs では、このように処理します
app.post('/expense/newPost', function(req, res) { ...
続けてmongoose
、コレクションを次のように検証します
tmpExp = new Expense(req.body);
tmpExp.validate(function(err) {
if(err || !isValidForm) {
req.session.form.errField = _.extend(req.session.form.errField, (err.errors || err ));
req.session.rePop = req.body;
res.redirect('/expense/new');
} else {
console.log('now saving') // successfully logs here.
tmpExp.save(expPost, function(err2, savedDoc) {
if(err2) {
req.session.flash = {
global: true
, css: "error"
, message: "Internal Server Error"
}
res.redirect('/expense/new');
} else {
res.redirect('/expense/new?success=' + savedDoc.bill_id);
}
});
}
});
明確にするために、検証コードの一部を削除しました。
問題は、ブラウザによって POST リクエストを送信した後、データが正常に mongodb に保存されますが、ブラウザはリダイレクトされず、サーバーからの応答を待つだけです。