我已經構建了一個表單來爲測試目的添加一些虛擬數據到Mongo集合。添加數據的功能似乎可以正常工作,因爲數據正在添加好,但由於某種原因,函數末尾的重定向命令沒有做到這一點。數據來自bog標準HTML表單。下面是用於添加數據的代碼:節點/ Javascript重定向不工作?
router.post('/addacc',function(req,res){
var sljEdate = "";
var pljEdate = "";
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/stc';
MongoClient.connect(url,function(err,db){
if(err){
console.log("Connection Error");
}else{
console.log("connected to mongo");
var collection = db.collection('account');
var query = {accountID: req.body.acc_id,companyName: req.body.acc_name,companyEmail:req.body.acc_email,companyPhone:req.body.acc_phone,companyPostCode:req.body.acc_postcode,
photographers: {phtID:"",phtName:"",phtPhone:"",phtEmail:"",phtLoc:"",preferredContact:"",lastJob:"",pljEpoch:pljEdate,phtNotes:""},
schools: {schoolID:"",schoolName:"",schoolPhone:"",schoolEmail:"",schoolPostCode:"",lastJob:"",sljEpoch:sljEdate,notes:""}};
collection.insert(query,function(err,result){
if(err){
console.log("Error inserting Account record",err);
}else{
console.log("Data Insert Success");
res.redirect("/forms");
}
db.close();
});
}
});
});
我添加的行記錄到在一些地方控制檯,這樣我可以檢查進度,他們都火,包括最後的「數據插入成功」之一。然而,它後面的res.redirect不做任何事情。在瀏覽器中,URL保持爲'/ addacc',儘管節點控制檯顯示了'/ forms'URL的後續GET。
我已經嘗試了一些重定向的變體,例如, res.send(「test」)只是爲了嘗試輸出一些東西,也是一個res.render函數,但它們都不起作用。
我很確定我錯過了一些簡單的事情,但我一直在盯着代碼太久,我看不出有什麼問題。事實上,我有很多次相同的代碼工作。我這次做的唯一一件事就是我插入到包含嵌入文檔的Mongo集合中,但數據插入並不是問題,因爲數據沒有問題。
請幫忙!
我認爲重定向POST請求有點不同。請參閱:http://stackoverflow.com/questions/17612695/expressjs-how-to-redirect-a-post-request-with-parameters – MrWillihog
好的,這是有趣的和有益的,謝謝。我會多一點戲,看看它是否能讓我獲得任何地方。 – Drum